Я назначил общедоступные переменные в почтовом сообщении. Я получаю некоторые значения ключей, но получаю пустые значения из ключей, которые я назначил позже. Я также реализую очереди.
В моем контроллере:
public function changeOrderStatus(Order $order){
$order->type = $request->type; //getting these two keys empty i.e.type and amount
$order->amount = $transaction->amount;
$mail = new CancelRefundOrder($order);
}
В моем /App/Mail/CancelRefundOrder.php
class CancelRefundOrder extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public $order;
public $order_type;
public function __construct($order)
{
$this->order = $order;
$this->order_type = $order->type;
}
public function build()
{
return $this->view('emails.ecommerce.cancel_refund_order_mail');
}
}
Если я здесь dd($order_type), я получаю значение. Но в моем клинке cancel_refund_order_mail я получаю пустое значение на {{$order_type}} или {{$order->type}}, почему?
$ заказать как модель.






Если вы не хотите передавать $ order как экземпляр модели заказа, вы можете просто передать лезвие с порядком в качестве переменной.
это будет входить в ваши методы сборки
публичная функция build () { вернуть $ this-> view ('emails.ecommerce.cancel_refund_order_mail') -> with (['order' => $ this-> order, 'order_type' => $ this-> order_type]); }
Хм .. но модель сборки напрямую берет публичное свойство класса. Нет необходимости использовать with.
Что, если бы заказ был ассоциативным массивом, использование его в качестве экземпляра Order привело бы к ошибке
Вы передаете
$orderкак модель или как идентификатор, принадлежащий модели? Попробуйтеpublic function __construct(Order $order)