我正在使用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
如何放置降价表以及如何在行之间放置降价表(如操作按钮)?
答案 0 :(得分:1)
如果$this->order
是公共财产,它将在视图文件中可用。
通常,您需要将一些数据传递给视图,以便在呈现电子邮件的HTML时可以使用。您可以通过两种方式使数据对视图可用。首先,您可邮递类上定义的任何公共属性将自动提供给视图。因此,例如,您可以将数据传递到可邮寄类的构造函数中,并将该数据设置为在该类上定义的公共属性:
否则,使用with
方法将数据传递到视图。
如果您想在将电子邮件数据发送到模板之前自定义其数据格式,则可以通过withmethod手动将数据传递到视图。通常,您仍将通过可邮寄类的构造函数传递数据。但是,您应该将此数据设置为受保护或私有属性,以便该数据不会自动提供给模板。然后,在调用with方法时,将您希望提供给模板的数据数组传递给
接下来,添加表格组件并循环创建行的订单商品:
@component('mail::table')
| id | name | price | qty | subtotal |
| -- |:----:| -----:| ---:| --------:|
@foreach($order->cart as $item)
// create table rows
@endforeach
@endcomponent