阅读(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>