【问题标题】:Laravel Run function from console commandLaravel 从控制台命令运行功能
【发布时间】:2023-03-13 11:31:01
【问题描述】:

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 方法时,它可以工作,但我想通过控制台命令运行它。这是我在控制台上的命令:php artisan helloworld。我得到了错误:

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

我的问题是:有没有办法通过命令控制台调用这个函数?如何? 先感谢您!

【问题讨论】:

    标签: laravel controller console command execute


    【解决方案1】:

    解决了! 我刚刚放置了句柄控制器的类名并调用了如下函数:

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

    成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2017-03-17
      • 2018-07-01
      • 2015-04-06
      • 1970-01-01
      相关资源
      最近更新 更多