【问题标题】:run artisan command from php function从 php 函数运行 artisan 命令
【发布时间】:2017-05-27 16:24:35
【问题描述】:

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

我试过 Artisan::call('passport:client'); 和 Artisan::command('passport:client'); 但它返回 undefined command

注意:我已经安装了 laravel 护照,命令在终端上运行正常

【问题讨论】:

  • 什么是工匠输出,列表中的命令是什么?
  • 这个命令应该创建客户端并且它有参数(名字)
  • 您解决了这个问题吗?我遇到了这个,我迷路了。

标签: php laravel laravel-artisan


【解决方案1】:

来自 Laravel 文档

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

//
});

【讨论】:

  • 它返回““passport”命名空间中没有定义命令。”
  • 这个对吗Artisan::call('passport:client', ['name' => 'ads', '--password' => 'default']);
【解决方案2】:

我找到了,在PassportServiceProvider 的boot() 方法中,有一个检查可以防止从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,
    ]);
}

现在我们可以调用Artisan::call('passport:install') 或其他两个命令。

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 2016-09-07
    • 2017-05-31
    • 2017-11-02
    • 2019-02-17
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多