2016-02-08 71 views
0

我想了解如何使用laravel 5.0命令总线,但我在努力得到它的权利,所以我寻求帮助回答几个问题:通行证阵列到命令总线

我我想分派一个memberIds数组来运行命令的句柄函数中的一个循环。

$成员:

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); 

} 

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

回答

1

由于您试图将$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 
    } 
} 

如果要注入雄辩模型来你的工作(而不是数组),记住,你可以在构造directtly typehint,并使用SerializesModels特质Laravel将检索它。这在documentation中描述。

+0

感谢您的好评。对此,我真的非常感激。 – retrograde

+0

不客气 – shempignon