[英]Passing variables from controller to mail class - Laravel
I'm trying to pass data from my controller to mail class but it won't work for some reasons. 我正在尝试将数据从控制器传递到邮件类,但是由于某些原因它无法正常工作。
Problem should be somewhere in variable passing but I don't have any error messages. 问题应该在变量传递中的某个地方,但是我没有任何错误消息。
Controller code: 控制器代码:
$send_data = [
"name" => $product->name,
"quantity" => $item->quantity,
"price" => $final_price
];
\Mail::to($email)->send(new OrderMail($send_data));
Mail class: 邮件类别:
class OrderMail extends Mailable
{
use Queueable, SerializesModels;
public $subject = "Úspešná objednávka";
public $send_data;
public function __construct($send_data)
{
$this->send_data = $send_data;
}
public function build()
{
$send_data = $this->send_data;
return $this->markdown('emails.ordered');
}
I would like to access data in emails.ordered view 我想访问emails.ordered视图中的数据
public function __construct($send_data)
{
$this->send_data = $send_data;
}
$this->send_data // this is a variable that you can use in view.
You can access through $send_data
variable (that is defined in __construct()
). 您可以通过
$send_data
变量(在__construct()
定义)进行访问。
After all I was just stupid and made typo in my markdown file, here's how my markdown should looked: 毕竟我只是愚蠢,在markdown文件中打错了字,这是我的markdown的外观:
@component('mail::message')
<h1>Dobrý deň {{$buyer}}!</h1>
<p>Vaša objednávka bola spracovaná úspešne.<p>
@component('mail::table')
| Produkt | Počet ks. | Cena |
|:---------------:|:--------------------:|:------------------:|
@foreach($send_data as $item)
|{{$item["name"]}}| {{$item["quantity"]}}| {{$item["price"]}}€|
@endforeach
<p>V prípade osobného odberu si môžete vyzdvihnúť tovar na predajni s týmto
klúčom: {{$next_id}}</p>
@endcomponent
@endcomponent
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.