Laravel Mail,foreach循环内部构建

时间:2018-02-16 06:39:59

标签: php laravel laravel-5

我正在开发一个应用程序,它会在一段时间内向某些人发送一些表格链接。我已经使用了一个队列。但问题是,每个参与者都有自己独特的链接。我必须将它们全部设置为一个队列。所以我使用了laravel Mail类。通过发送邮件到达。但我面临的问题是电子邮件已成功发送给这些人。但我附加的链接被发送给所有人,它是最后一个数组键的数据。表示最后一个参与者的链接与他们共享。

这是我的Mail类构建功能,我使用foreach向不同的参与者发送不同的链接。

public function build()
{
    // return $this->view('emails.formlink')
    //             ->subject('Participant Form Link');

    foreach ($this->linktoShare as $key => $value) {
        $participant    = InhouseParticipants::get(['id', 'email'])->find($value->participant_id);
        $this->mailData = $value->toArray();
        $this->to($participant->email)
            ->view('emails.formlink')
            ->subject('Participant Form Link')
            ->with($this->mailData);
    }
}

在视图中,我已将链接作为$mailData['link']传递。如果你有任何解决方案,请建议我。

1 个答案:

答案 0 :(得分:0)

Laravel Queue拥有以前运行的作业的副本,因此当您更改将推送到队列的代码块时需要重新启动队列,因此这是您的解决方案。

导航到您的项目目录并运行

php artisan queue:restart

再次发送作业,它将解决问题。