Laravel通知电子邮件-多个数据

时间:2019-08-31 09:46:51

标签: php laravel laravel-5.8

我有多个数据,我需要将整个数据发送到电子邮件中,有人可以帮我吗?

stdClass Object
(
    [0] => stdClass Object
        (
            [post_id] => 1452
            [No_Of_Workers] => 2
        )

    [1] => stdClass Object
        (
            [post_id] => 1445
            [No_Of_Workers] => 1
        )

)

我需要展示

Hi, Below are my data:

Post id: 1452
No of workers: 3

--------------------

Post id: 1445
No of workers: 1

如何发送数组以发送邮件数据?

这是我尝试的代码:

public function toMail($notifiable)
    {
        echo '<pre>';print_r($this->msg->data); die;
        $mailMessage = (new MailMessage)
            ->replyTo($this->msg->email, 'Hi' . ' ' . 'Jaymin')
            ->subject('Daily Report email')
            ->line($this->msg->data);


        echo '<pre>';print_r($mailMessage); die;
        $mailMessage->line(nl2br('This is peace'));

        return $mailMessage;
    }

line()由我需要发送的电子邮件数据组成,我可以这样发送:

->line(t('Email Address') . ': ' . $this->msg->email);

但是我需要以上述格式发送它,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

您最好为此使用markdown。您可以使用此artisan命令使用相关的markdown视图生成通知(在控制台的laravel项目的根目录中使用该通知)

php artisan make:notification DailyPostsReportNotification --markdown=mail.posts.report

这将创建两个文件:

  • App\Notifications\DailyPostsReportNotification.php中的通知类
  • 将在resources\views\mail\posts\report.blade.php中呈现的电子邮件视图

在通知的toMail方法中(如果尚未存在),您必须将数据传递到降价视图:

/**
 * Get the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return \Illuminate\Notifications\Messages\MailMessage
 */
public function toMail($notifiable)
{
    return (new MailMessage)
        ->subject('Daily Report Email')
        ->replyTo($this->msg->email)
        ->markdown('mail.posts.report', ['posts' => $this->msg->data]);
}

重要提示:使用变量或属性编辑$this->msg->data(如果需要),在该变量或属性中您要在电子邮件中打印出数据数组,因为目前尚不清楚从您的代码中调用。

您现在可以使用markdown语法编辑电子邮件视图文件以显示正确格式的数据:

@component('mail::message')

Hi, below is my data:

@foreach ($posts as $post)
Post id: {{$post->post_id}}<br>
No of workers: {{$post->No_Of_Workers}}<br>

@unless ($loop->last)
--------------------<br>
@endunless
@endforeach

@endcomponent