如何将数组从 Controller 发送到可邮寄的降价模板,并在 table 组件中循环使用 Laravel?
How to send an array from Controller to mailable markdown template and loop it in a table component with Laravel?
我想从我的控制器发送一个数组(一种硬编码的购物车)到可邮寄的 markdown 模板,并在 table 组件中循环它,使多行包含我的所有命令。
我通过 POST 请求从我的视图发送此数据:
commande = {
"phone":"+213582828193",
"email":"John@doe.fr",
"address":"2 rue albert camus",
"panier": [
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
],
"total":20
}
我的控制器接收到数据并且显示正确我可以访问所有数据,甚至是 $panier 数组 :
public function store(Request $request)
{
$phone = $request->phone;
$email = $request->email;
$address = $request->address;
$panier = $request->panier;
$total = $request->total;
$data_panier = [
'name'=> json_decode($panier['name']) ,
'quantite'=> $panier['quantite'],
'prix'=> $panier['prix'],
];
$data = [
'phone' => $phone,
'email' => $email,
'address' => $address,
'total'=>$total
];
//dd($panier[0]["name"]);
if ($request){
//Send Email
Mail::to($email)->send(new SendInvoice($data, $data_panier));
}
}
My Mailable class 我尝试发送我的 $data_panier 数组 :
class SendInvoice extends Mailable{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public $data,$data_panier;
public function __construct($data, $data_panier)
{
$this->data = $data;
$this->data_panier = $data_panier;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('noreply@mail.com', 'Mailer')->subject('New command')->markdown('mail.send-invoice');
}}
最后是我的电子邮件模板,我想在其中显示我的 $data_panier 以及 foreach 循环中的所有数据,但我不知道如何做,也没有找到文档或帮助怎么做:
@component('mail::message')
Introduction
The body of your message.
@component('mail::table')
| Laravel | Table | Example |
| ------------- |:-------------:| --------:|
| {{ $data_panier['name'] }} | {{ $data_panier['quantite'] }} | {{ $data_panier['prix'] }} |
| Col 3 is | Right-Aligned | |
@endcomponent
@component('mail::button', ['url' => ''])
Button Text
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent
提前致谢!
你可以这样写
$data = [
'phone' => $phone,
'email' => $email,
'address' => $address,
'total'=>$total,
'data_panier' => $data_panier
];
if ($request){
Mail::to($email)->send(new SendInvoice($data));
}
}
您的可邮寄 class 将是
public $data;
public function __construct($data)
{
$this->data = $data;
}
希望这能解决您的问题。
遍历数组使用blade语法
<ul>
@if ( isset( $data_panier ) && is_array( $data_panier ) )
@foreach ( $data_panier as $data_pan ) --}}
<li> {{ $data_pan['name'] }} </li>
@endforeach
@endif
</ul>
我想从我的控制器发送一个数组(一种硬编码的购物车)到可邮寄的 markdown 模板,并在 table 组件中循环它,使多行包含我的所有命令。
我通过 POST 请求从我的视图发送此数据:
commande = {
"phone":"+213582828193",
"email":"John@doe.fr",
"address":"2 rue albert camus",
"panier": [
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
{ "name":"Ford", "quantite":"2", "prix":"2000da" },
],
"total":20
}
我的控制器接收到数据并且显示正确我可以访问所有数据,甚至是 $panier 数组 :
public function store(Request $request)
{
$phone = $request->phone;
$email = $request->email;
$address = $request->address;
$panier = $request->panier;
$total = $request->total;
$data_panier = [
'name'=> json_decode($panier['name']) ,
'quantite'=> $panier['quantite'],
'prix'=> $panier['prix'],
];
$data = [
'phone' => $phone,
'email' => $email,
'address' => $address,
'total'=>$total
];
//dd($panier[0]["name"]);
if ($request){
//Send Email
Mail::to($email)->send(new SendInvoice($data, $data_panier));
}
}
My Mailable class 我尝试发送我的 $data_panier 数组 :
class SendInvoice extends Mailable{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public $data,$data_panier;
public function __construct($data, $data_panier)
{
$this->data = $data;
$this->data_panier = $data_panier;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('noreply@mail.com', 'Mailer')->subject('New command')->markdown('mail.send-invoice');
}}
最后是我的电子邮件模板,我想在其中显示我的 $data_panier 以及 foreach 循环中的所有数据,但我不知道如何做,也没有找到文档或帮助怎么做:
@component('mail::message')
Introduction
The body of your message.
@component('mail::table')
| Laravel | Table | Example |
| ------------- |:-------------:| --------:|
| {{ $data_panier['name'] }} | {{ $data_panier['quantite'] }} | {{ $data_panier['prix'] }} |
| Col 3 is | Right-Aligned | |
@endcomponent
@component('mail::button', ['url' => ''])
Button Text
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent
提前致谢!
你可以这样写
$data = [
'phone' => $phone,
'email' => $email,
'address' => $address,
'total'=>$total,
'data_panier' => $data_panier
];
if ($request){
Mail::to($email)->send(new SendInvoice($data));
}
}
您的可邮寄 class 将是
public $data;
public function __construct($data)
{
$this->data = $data;
}
希望这能解决您的问题。
遍历数组使用blade语法
<ul>
@if ( isset( $data_panier ) && is_array( $data_panier ) )
@foreach ( $data_panier as $data_pan ) --}}
<li> {{ $data_pan['name'] }} </li>
@endforeach
@endif
</ul>