首页 > 解决方案 > Laravel 5.6 - 如何使用命令行参数运行作业或事件?

问题描述

我有一项App\Jobs\BanUser工作,它接受一个参数id来通过传递他们的 id 来阻止坏用户。如果从这样的控制器调用,那将非常有效:

dispatch(new BanUser($id));

但是,当我尝试从 tinker 命令行使用完整的命名空间执行此操作时,如下所示:

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

我收到此错误:

PHP 致命错误:在第 1 行的 Psy Shell 代码中找不到类 'App/Jobs/BanUser'

id知道如何使用命令行传递的参数来完成这项工作吗?

注意:如果解决方案需要为此作业从命令行启动队列,最好将其设置为事件?我不希望它排队,只是希望能够通过传递参数并BanUser从命令行为作业或事件执行相应的代码来实时运行它。

标签: phplaravellaravel-5laravel-5.5laravel-5.6

解决方案


尝试

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

我不确定它是否会起作用,但你可以试一试。


推荐阅读