Laravel自定义电子邮件通知表

时间:2018-07-07 06:03:42

标签: php laravel

我正在使用laravel通知发送电子邮件,但我想知道如何在文本行之间的电子邮件视图上显示表格。

我使用的是laravel的默认视图,但我不知道如何传递表'

这是我的toMail方法:

public function toMail($notifiable)
    {
        $message = new MailMessage();
        $message->subject('Command confirmation n°'.$this->order->id)
            ->replyTo('noreply@example.com')
            ->line('Thanks to choose us!')
            ->line('Here the details of your order n°'.$this->order->id);

        foreach($this->order->cart as $item){
            // here the table
        }

        $message->line('To see your order click here');
        $message->action('My orders', url('http://www.example.com/espace-perso/mes-commandes'))

        return $message;
    }

在email.blade.php视图(默认的laravel视图)中,我有:

{{-- Action Button --}}
@isset($actionText)
<?php
    switch ($level) {
        case 'success':
            $color = 'green';
            break;
        case 'error':
            $color = 'red';
            break;
        default:
            $color = 'blue';
    }
?>
@component('mail::button', ['url' => $actionUrl, 'color' => $color])
{{ $actionText }}
@endcomponent
@endisset

{{-- Outro Lines --}}
@foreach ($outroLines as $line)
{{ $line }}

@endforeach

如何放置降价表以及如何在行之间放置降价表(如操作按钮)?

1 个答案:

答案 0 :(得分:1)

如果$this->order是公共财产,它将在视图文件中可用。

View Data

  

通常,您需要将一些数据传递给视图,以便在呈现电子邮件的HTML时可以使用。您可以通过两种方式使数据对视图可用。首先,您可邮递类上定义的任何公共属性将自动提供给视图。因此,例如,您可以将数据传递到可邮寄类的构造函数中,并将该数据设置为在该类上定义的公共属性:

否则,使用with方法将数据传递到视图。

  

如果您想在将电子邮件数据发送到模板之前自定义其数据格式,则可以通过withmethod手动将数据传递到视图。通常,您仍将通过可邮寄类的构造函数传递数据。但是,您应该将此数据设置为受保护或私有属性,以便该数据不会自动提供给模板。然后,在调用with方法时,将您希望提供给模板的数据数组传递给

接下来,添加表格组件并循环创建行的订单商品:

@component('mail::table')
| id | name | price | qty | subtotal |
| -- |:----:| -----:| ---:| --------:|
@foreach($order->cart as $item)
  // create table rows
@endforeach
@endcomponent