阅读(264)
赞(8)
Laravel 8 通过 Public 属性
2021-07-05 17:12:39 更新
通常情况下,您可能想要在渲染邮件的 HTML 内容时传递一些数据到视图中。有两种方法传递数据到时视图中。第一种,您在 mailable 类中定义的所有 public 的属性都将自动传递到视图中。因此,举个例子,您可以将数据传递到您的 mailable 类的构造函数中,并将其设置为类的 public 属性:
<?php
namespace App\Mail;
use App\Models\Order;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class OrderShipped extends Mailable
{
use Queueable, SerializesModels;
/**
* 订单实例。
*
* @var Order
*/
public $order;
/**
* 创建一个消息实例。
*
* @param \App\Models\Order $order
* @return void
*/
public function __construct(Order $order)
{
$this->order = $order;
}
/**
* 构造消息。
*
* @return $this
*/
public function build()
{
return $this->view('emails.orders.shipped');
}
}
当数据被设置成为 public 属性之后,它将被自动传递到您的视图中,因此您可以像您在 Blade 模板中那样访问它们:
<div>
Price: {{ $order->price }}
</div>