在发送邮件时,如何在动态DOMPDF的loadView中将变量从控制器传递到刀片



我想用数据库中选定的用户名来代替'john'。邮件上有办法吗

控制器

public function sendEmail(Request $request)
{
$users = StudentApplicants::whereIn("id", $request->ids)->get();
$data = [
'name' => 'john'
];
$pdf = app('dompdf.wrapper');
$pdf->loadView('admin.send-awardees-certificates.certificate', $data);
$pdf->setPaper('A4', 'landscape');
foreach ($users as $key => $user) {
Mail::to($user->users->email)->send(new CertificateEmail($user, $pdf));
}
return response()->json(['success' => 'Send email successfully. Refresh the page']);
}

邮件

public function build()
{
return $this->from(env('info@example.com'))
->subject('Certificate from ABC EFG')
->view('email.certificate-email') //body
->attachData($this->pdf->output(), 'stock_report.pdf');
}

证书刀片

<div class="name">
{{ $name }}
</div>

您可以接受用户作为构造函数参数

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

然后把它传给像这个一样的视图

$this->view('email.certificate-email')
->with([
'user' => $this->user
]);

我认为文档中的这一部分会对你有所帮助。

最新更新