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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将变量从控制器传递到邮件类 - Laravel相关的知识,希望对你有一定的参考价值。

我正在尝试将数据从我的控制器传递到邮件类,但由于某些原因它不起作用。

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

控制器代码:

$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视图中的数据

答案
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()中定义)访问。

另一答案

毕竟我只是愚蠢而且在我的降价文件中输错了,这是我的降价看起来的样子:

@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

以上是关于将变量从控制器传递到邮件类 - Laravel的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:我正在尝试将变量从视图传递到控制器,但它返回 null

Laravel - 将变量从中间件传递到控制器/路由

在 Laravel 中以相同的方法将变量从一个查询传递到另一个查询

将数据从控制器传递到 Laravel 中的视图

如何从 Laravel 的控制器中传递变量到视图

在 Laravel 5.1 中通过 AJAX 将用户输入数据从视图传递到控制器