2017-02-15 1 views
1

Laravel 5.2, vient de créer la commande nommée "HelloWorld" et est le code ici:Laravel la fonction Exécuter de commande de la console

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

    } 
} 

Mon contrôleur HelloWorldController.php regarde comme ci-dessous:

<?php 

namespace App\Http\Controllers; 

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

} 

Mon Kernel.php a les commandes suivantes jusqu'à présent:

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

Lorsque je lance la méthode de routage VIA du contrôleur, cela fonctionne, mais je veux l'exécuter via la commande Console. Voici ma commande sur console: php artisan helloworld. Et je reçois l'erreur:

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

Ma question est: Y at-il un moyen d'appeler cette fonction VIA command console? Comment? Merci d'avance!

Répondre

1

Résolu! Je viens de passer sur le nom de la classe de contrôleur de poignée et a appelé la fonction suivante:

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

Il a fonctionné!