
本文档详细介绍了如何在 Laravel 8 中,通过控制器向邮件视图传递参数。通常在用户注册等场景下,我们需要发送包含用户名、密码等信息的邮件。本文将指导你如何正确地在控制器中构建邮件数据,并将其传递到邮件模板,最终实现个性化的邮件内容。
在 Laravel 中,向邮件视图传递数据主要涉及到修改邮件类和控制器代码。以下是详细步骤:
1. 修改邮件类 (Mailable)
首先,修改你的邮件类,以便能够接收数据并在 build() 方法中将其传递给视图。
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class RegisterMail extends Mailable
{
use Queueable, SerializesModels;
private $data;
/**
* Create a new message instance.
*
* @param array $data
* @return void
*/
public function __construct(array $data)
{
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('emails.register', ['data' => $this->data])
->subject('Register SLeAgro Agricultural Product Distribution System');
}
}代码解释:
2. 修改控制器
接下来,修改你的控制器,以便在创建邮件类实例时传递数据。
use App\Mail\RegisterMail;
use Illuminate\Support\Facades\Mail;
// ...
$data1 = [
'email' => $request->email,
'password' => $code
];
$mail = new RegisterMail($data1);
Mail::to($request->email)->send($mail);代码解释:
3. 修改邮件视图 (Blade 模板)
最后,在你的邮件视图 (例如 resources/views/emails/register.blade.php) 中,可以使用 $data 变量来访问传递的数据。
@component('mail::message')
# Welcome SleAgro Agricultural Product Management System
you can loging to the system using following credetail .
User name : {{ $data['email'] }}
<br>
password : {{ $data['password'] }}
@component('mail::button', ['url' => 'http://127.0.0.1:8000/login'])
Login
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent代码解释:
通过以上步骤,你就可以成功地在 Laravel 8 中,通过控制器向邮件视图传递参数。 关键在于:
注意事项:
以上就是Laravel 8:在控制器中向邮件视图传递参数的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号