Laravel 5.6 - Как запустить задание или событие с параметрами из командной строки? - PullRequest
0 голосов
/ 18 мая 2019

У меня есть задание App\Jobs\BanUser, которое принимает параметр id, чтобы заблокировать плохого пользователя, передав его идентификатор. Это прекрасно работает, если вызывается из контроллера, как это:

dispatch(new BanUser($id));

Но когда я пытаюсь сделать это из командной строки тинкера с полным пространством имен, вот так:

dispatch(new App\Jobs\BanUser('1'));

Я получаю эту ошибку:

Неустранимая ошибка PHP: класс 'App / Jobs / BanUser' не найден в коде оболочки Shell по линии 1

Есть идеи, как выполнить эту работу с помощью переданного параметра id из командной строки?

ПРИМЕЧАНИЕ. Если решение требует запуска очереди из командной строки только для этого задания, возможно, лучше установить его как событие? Я не хочу, чтобы он ставился в очередь, просто хочу иметь возможность запускать его в реальном времени, передав параметр и выполнив соответствующий код BanUser из командной строки для задания или события.

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Убедитесь, что в вашем классе BanUser указано правильное пространство имен App\Jobs.

Также убедитесь, что файл класса BanUser находится в правильном каталоге.

1 голос
/ 18 мая 2019

1001 * попробовать *

app('Illuminate\Bus\Dispatcher')->dispatch(new App\Jobs\BanUser('1'));

Я не уверен, что это сработает, но вы можете попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...