将变量从控制器传递到邮件类-Laravel

时间:2019-02-09 18:54:14

标签: laravel email variables controller

我正在尝试将数据从控制器传递到邮件类,但是由于某些原因它无法正常工作。

问题应该在变量传递中,但是我没有任何错误消息。

控制器代码:

$send_data = [  
    "name" => $product->name,  
    "quantity" => $item->quantity,  
    "price" => $final_price  
];  

\Mail::to($email)->send(new OrderMail($send_data));  

邮件类别:

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');
}

我想访问emails.ordered视图中的数据

2 个答案:

答案 0 :(得分:1)

public function __construct($send_data)
{
    $this->send_data = $send_data;
}

$this->send_data      // this is a variable that you can use in view.

您可以通过$send_data变量(在__construct()中定义)进行访问。

答案 1 :(得分:0)

毕竟我只是愚蠢,在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