LARAVEL 5.2,刚刚创建了名为“HelloWorld”的命令,这里是代码:
<?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命令控制台?怎么样? 先感谢您!
答案 0 :(得分:2)
解决! 我刚刚放置了句柄控制器的类名,并将该函数调用如下:
$x = new HelloWorldController();
echo $x->helloWorld();
有效!