laravel - Laravel 邮件刀片传递变量
问题描述
我需要将一些变量传递给我的发送电子邮件。
这是我的代码:
$data = [
'first' => $request->first,
'last' => $request->last,
'business_org' => $request->business_org,
'instagram' => $request->instagram,
'email' => $request->email,
'phone' => $request->phone,
'unique' => $request->unique,
'purchased' => $request->products_purchased,
'city' => $request->city,
'state' => $request->state,
'filename' => $fileName
];
// send email with details
Mail::send('emails.justshoot', $data, function($message) {
$message->from('us@something.com', 'Just Shoot Upload');
$message->to('myemail@gmail.com')->cc('myemail@gmail.com');
});
然后我尝试访问该变量,以便可以在我的电子邮件中显示它。emails.justshoot.blade.php
{{$data}}
给出一个错误。我究竟做错了什么?
解决方案
你对你正在做的事情完全没问题,但是第二个参数是传递给视图的数据,并且与with([])
调用视图的方法一样,传递的数组将为每个条目生成一个对象,所以你是什么你正在生成$first, $last, $business_org
并且$data
只是数组的名称,所以它没有作为元素传递给视图:如果你想要这个,你应该传递[$data]
给邮件发送:
$data = [
'first' => $request->first,
'last' => $request->last,
'business_org' => $request->business_org,
'instagram' => $request->instagram,
'email' => $request->email,
'phone' => $request->phone,
'unique' => $request->unique,
'purchased' => $request->products_purchased,
'city' => $request->city,
'state' => $request->state,
'filename' => $fileName
];
// send email with details
Mail::send('emails.justshoot', [$data], function($message) {
$message->from('us@something.com', 'Just Shoot Upload');
$message->to('myemail@gmail.com')->cc('myemail@gmail.com');
});
然后在视图中你可以做{{$data}}
提示:您应该使用 php artisan 创建一个邮件,然后您就可以以更优雅的方式做任何您想做的事情
推荐阅读
- sql - SQL:当查询也有很多“where”谓词时,“order by”列上的索引
- java - 滑动时材质选项卡闪烁问题 - Android
- flutter - 发布版本在 Flutter 中无法正常工作?
- javascript - 如何插入物体深处
- google-apps-script - 您如何判断 Google 表格是否附加了脚本?
- bash - 在源代码中调用 DB2 时得到 08003
- javascript - @metamask/detect-provider 没有导入
- swift - 如何在 Linphone ios SDK 中发送 DTMF
- geolocation - Google Maps Geolocation API 对同一请求给出不同的答案
- python - Python Seaborn 动态更新热图数据