【问题标题】:Laravel Mail, foreach loop inside buildLaravel Mail,构建内部的 foreach 循环
【发布时间】:2018-02-16 06:39:58
【问题描述】:

我正在开发一个应用程序,它将在所需时间向某些人发送一些表单链接。我为此使用了一个队列。但问题是,每个参与者都有其独特的联系。我必须将它们全部设置为一个队列。所以我使用了 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']。如果您有任何解决方案,请建议我。

【问题讨论】:

  • 能否也显示其他代码以便我们理解问题?由于这些信息很难理解!
  • 你能转储这个数组 $this->linktoShare 吗?
  • @FarazIrfan 这是一个多维数组,具有与参与者的不同链接。我已经从他们的 ID 中获取了参与者的详细信息以获取他们的电子邮件地址,并将该链接传递给了他们。所有数据都是完美的。我已经打印了所有经过测试的链接。一切都很好。但我发送的邮件使用最后一个数组值。

标签: php laravel laravel-5


【解决方案1】:

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

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

php artisan queue:restart

然后再次调度作业,它会解决问题。

【讨论】:

    猜你喜欢
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 2012-07-19
    • 1970-01-01
    相关资源
    最近更新 更多