2017-02-15 8 views
1

LARAVEL 5.2、単にコード "HelloWorldの" というコマンドを作成し、ここにある:HelloWorldController.phpは、以下のように見えるコンソールコマンドからLaravel Run関数

<?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(); 

    } 
} 

私のコントローラを:

<?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(); 

それは働きました!

関連する問題