Laravel 5.6 - 如何使用命令行参数 运行 作业或事件?

Laravel 5.6 - How to run job or event with parameters from command line?

我有一个 App\Jobs\BanUser 作业,它接受一个参数 id 通过传递他们的 ID 来阻止不良用户。如果从这样的控制器调用,那将完美运行:

dispatch(new BanUser($id));

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

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

我收到这个错误:

PHP Fatal error: Class 'App/Jobs/BanUser' not found in Psy Shell code on line 1

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

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

尝试

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

我不确定它是否有效,但你可以试一试。

确保 BanUser class 中的命名空间 App\Jobs 正确。

还要检查 BanUser class 文件是否放在正确的目录中。