laravel - Laravel - 将自定义数据传递给电子邮件视图
问题描述
继上一个问题之后,我设置了一个电子邮件控制器以正确地将用户数据传递给视图。我现在正在尝试修改它,以便可以传递一些自定义数据。我的控制器看起来像这样......
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class Welcome extends Mailable
{
use Queueable, SerializesModels;
public $email_data;
public function __construct($email_data)
{
$this->email_data = $email_data;
}
public function build()
{
return $this->view('emails.welcome')->with(['email_data' => $this->email_data]);
}
}
我正在发送这样的电子邮件......
/* Create Data Array For Email */
$email_data = array(
'first_name'=>'John',
'last_name'=>'Doe',
'email'=>'john@doe.com',
'password'=>'temp',
);
/* Send Email */
Mail::to($user->email)->send(new Welcome($email_data));
这个对吗?当我尝试使用这种方法时,它似乎没有将数据传递给电子邮件模板。然后我怎样才能在视图中访问这些数据?
解决方案
你试过这种方式吗?
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class Welcome extends Mailable
{
use Queueable, SerializesModels;
public $data;
public function __construct($data)
{
$this->data = $data;
}
public function build()
{
return $this->view('emails.welcome')->with('data', $this->data);
}
}
然后在您创建数据数组的控制器中,
$data = [
'first_name'=>'John',
'last_name'=>'Doe',
'email'=>'john@doe.com',
'password'=>'temp'
];
\Mail::to($user->email)->send(new Welcome($data));
请确保添加
use Mail;
use App\Mail\Welcome;
在您的控制器中。
您可以像这样访问视图中的数据
{{ $data['first_name'] }}
{{ $data['last_name'] }}
{{ $data['email'] }}
{{ $data['password'] }}
或者
您也可以为此尝试Markdown 邮件
推荐阅读
- dynamic - Vue:将数据传递给动态组件
- neo4j - 密码查询到 CSV
- vba - 如何使记录宏在其他工作簿上工作。VLOOKUPS
- r - R,根据多列中的值删除行
- html - 如何从 sqlite3 数据库中查询数据并使用 node.js 将它们放入 HTML 元素中?
- php - PHP http_build_query在我写reg时生成一个®符号,如何转义?
- redis - 尝试从 VM 连接到 GCP cloudmemorystore 时出现 Jedis 错误
- python - 如何将数据从 server.py 发送到特定客户端
- python-2.7 - 机械化(Python)中的持久会话/登录检查后导航到另一个站点
- mysql - 在 MySQL 中,有没有办法用数字列表计算平均值?