将数组传递到命令总线



我试图了解如何使用 laravel 5.0 命令总线,但我正在努力使其正确,所以我正在寻求几个问题的帮助:

我想调度一个 memberId 数组来运行命令句柄函数内的循环。

$members:

array:2 [
0 => "147"
1 => "148"
 ]

此数组的发送方式如下:

$this->dispatch(new SendMail($members));

如何在 SendMail 命令的句柄方法中访问数组? 我没有找到很多例子,但几乎所有例子都$command传递到处理程序中。

public function handle($command)
{
  //this doesn't work
  foreach($command->members as $memberId){
   $contractor = Contractor::find($memberId);
}

我是否需要从处理程序返回任何内容才能继续在原始函数中运行其他逻辑?

由于您尝试将$members数组注入到作业的构造函数方法中,因此您需要在那里处理它。

然后,您将能够在 hanle 方法中使用您的数组。

// in your job class
protected $members;
public function __construct($members)
{
    $this->members = $members
}
public function handle ()
{
     foreach ($this->members as $member) {
         //your logic
     }
}

如果你想在你的工作(而不是数组)中注入一个 Eloquent 模型,请记住你可以直接在构造函数中键入提示,并使用 Laravel 将为你检索它的SerializesModels特征。文档中对此进行了描述。

最新更新