Почему The command \"passport:install\" does not exist.?

Рейтинг: 0Ответов: 1Опубликовано: 27.05.2023

при запуске приложения

php artisan passport:install

в консоли все выполняется

а когда хочу чтобы эта команда сработала так то выдает ошибку

Route::post('/cli-passport-install', function () {
    Illuminate\Support\Facades\Artisan::call('passport:install');

    return new Illuminate\Http\JsonResponse([], 204);
});

Ответы

▲ 0Принят

В PassportServiceProvider есть следующая проверка, которая позволяет выполнять эту команду только из консоли:

protected function registerCommands()
{
    if ($this->app->runningInConsole()) {
        $this->commands([
            Console\InstallCommand::class,
            Console\ClientCommand::class,
            Console\HashCommand::class,
            Console\KeysCommand::class,
            Console\PurgeCommand::class,
        ]);
    }
}

Как вариант, можно зарегистрировать нужные команды в своём классе AppServiceProvider (не забыть добавить в секцию use все импорты):

public function boot()
{
    ....
    $this->commands([
       InstallCommand::class,
       ClientCommand::class,
       HashCommand::class,
       KeysCommand::class,
       PurgeCommand::class,
   ]);
}