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 文件是否放在正确的目录中。
我有一个 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 文件是否放在正确的目录中。