2017-02-15 5 views
1

Laravel 5.2, только что создали команду под названием "HelloWorld" и вот код:Laravel Запуск функции из команды консоли

<?php 

namespace App\Console\Commands; 

use Illuminate\Console\Command; 
use App\Http\Controllers\HelloWorldController; 

class MakeImportsCommand extends Command 
{ 
    /** 
    * The name and signature of the console command. 
    * 
    * @var string 
    */ 
    protected $signature = 'helloworld'; 

    /** 
    * The console command description. 
    * 
    * @var string 
    */ 
    protected $description = 'Say Hello World Controller'; 

    /** 
    * Create a new command instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    /** 
    * Execute the console command. 
    * 
    * @return mixed 
    */ 
    public function handle() 
    { 
     return $this -> helloWorld(); 

    } 
} 

Мой контроллер HelloWorldController.php выглядит, как показано ниже:

<?php 

namespace App\Http\Controllers; 

class HelloWorldController extends Controller 
{ 
    public function helloWorld() { 
     echo 'Hello World from controller'; 
    } 

} 

У моего Kernel.php есть следующие команды:

protected $commands = [ 
     Commands\Inspire::class, 
     Commands\HelloWorldCommand::class, 
    ]; 

Когда я запускаю метод VIA Routing контроллера, он работает, но я хочу запустить его с помощью команды Console. Вот моя команда на консоли: php artisan helloworld. И я получаю ошибку:

[Symfony\Component\Debug\Exception\FatalErrorException]Call to undefined method App\Console\Commands\HelloWorldCommand::helloWorld() 

Мой вопрос: есть ли способ вызова этой функции консоль команд VIA? Как? Спасибо заранее!

ответ

1

Решено! Я просто помещается на имени класса ручки контроллера и вызова функции следующим образом:

$x = new HelloWorldController(); 
echo $x->helloWorld(); 

Это сработало!