Вызывающий паспорт: клиент из маршрута, "в пространстве имен" паспорт "не определены команды"

У меня проблема, когда пространство имен passport недоступно, когда я вызываю passport:client. Я создал новый проект Laravel версии 5.6.34, в который я установил Паспорт Laravel по документации. Я также проверил аналогичный вопрос и безуспешно выполнил все шаги.

Вызов php artisan passport:client --password --name = "Test" из командной строки работает без проблем, и я вижу клиента в базе данных.

Однако, если я создам маршрут в routes/web.php следующим образом:

<?php
use Illuminate\Support\Facades\Route;
use \Illuminate\Support\Facades\Artisan;

Route::get('/', function () {
    Artisan::call('passport:client', [
        '--password' => true,
        '--name' => "Test client",
        '--quiet' => true,
    ]);
});

и используйте фасад Artisan для вызова команды. Я получаю сообщение об ошибке ниже, когда перехожу к http://homestead.test/.

Symfony \ Component \ Console \ Exception \ CommandNotFoundException The command "passport:client" does not exist.

Я добавил Laravel\Passport\PassportServiceProvider::class в массив поставщиков в config/app.php.

Как я могу вызвать команду passport:client из веб-маршрута?

У нас есть приложение Laravel, которое имеет несколько сотен подключений к базе данных, которые обрабатываются динамически. В интерфейсе администратора вы можете создать новый проект и, следовательно, новую базу данных, в которой нам нужно создать клиента.

Другой вариант - создать экземпляр ClientRepository и вызвать метод createPasswordGrantClient(), но я бы хотел этого избежать, если это возможно. Мне любопытно узнать, почему пространство имен доступно при вызове из CLI, но не через запрос. Я могу вызывать другие команды, такие как migrate:fresh, по запросу, но passport:client не сработает, даже если он является частью миграции или внутри другой команды.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
1 543
1

Ответы 1

Согласно эта ссылка, я выполнил следующие команды.

composer update

php artisan config:cache
php artisan migrate
php artisan passport:install

Это мне помогло.

Спасибо, но это то же самое, что и мой связанный аналогичный вопрос, который не помог, однако я ценю время, которое вы потратили на это. Может быть, это поможет кому-то еще с подобной проблемой

Markus Tenghamn 11.12.2018 12:15

Другие вопросы по теме