从php函数运行artisan命令

时间:2017-01-12 14:09:11

标签: php laravel artisan

我想从函数运行php artisan passport:client --password

我尝试了Artisan::call('passport:client');Artisan::command('passport:client');,但它返回undefined command

注意:我已经安装了laravel passport,命令在终端上正常工作

2 个答案:

答案 0 :(得分:5)

我找到了它,在boot()的{​​{1}}方法中,有一个检查基本上阻止了它从PassportServiceProvider调用。

Artisan::call

使其适用于一般工匠命令,我们可以自己注册这些命令。也许在//PassportServiceProvider.php at line 37: if ($this->app->runningInConsole()) { $this->commands([ Console\InstallCommand::class, Console\ClientCommand::class, Console\KeysCommand::class, ]); ... } 的引导方法中的某个地方。

AuthServiceProvider

现在我们可以调用public function boot() { $this->commands([ Console\InstallCommand::class, Console\ClientCommand::class, Console\KeysCommand::class, ]); } 或其他2个命令。

答案 1 :(得分:1)

来自Laravel Docs

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

//
});