laravel中怎么调用command?

app\Console\Kernel.php文件里面有个schedule方法,可以调用command()执行命令行指令:

    protected function schedule(Schedule $schedule)
    {
         $schedule->command('inspire')->hourly();
    }

问题:
我想在自己写的控制器里面使用command()方法,应该怎么写呢?比如:

class TestController extends Controller
{

    public function test()
    {
        //我想使用command(),不是定时调用,而是这个test()方法执行时就生效,应该怎么写?
    }
}
阅读 11k
2 个回答

使用 Artisan::call 调用。多看看文档吧

Route::get('/foo', function () {
    $exitCode = Artisan::call('email:send', [
        'user' => 1, '--queue' => 'default'
    ]);

    //
});

https://d.laravel-china.org/docs/5.4/artisan#程序内部调用命令

建一个公共类,把要做的事情放到这个类的方法里。

class A {

    public function do()
    {
        // TODO:
    }

}

之后,调用之

    // 命令执行方法
    public function handle()
    {
         (new A)->do();
    }
    // 控制器方法
    public function test()
    {
         (new A)->do();
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进