You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8 如何将控制器参数传递到邮件类对应的视图模板

Laravel 8 邮件传递用户凭据解决方案

实现步骤

1. 调整邮件类 App\Mail\RegisterMail

首先在邮件类中定义公共属性接收传入的用户数据,Laravel的Mailable类的公共属性会自动传递到关联的视图中:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class RegisterMail extends Mailable
{
    use Queueable, SerializesModels;

    // 定义公共属性存储用户登录凭据
    public $userData;

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

    public function build()
    {
        return $this->markdown('emails.register')
               ->subject('注册SLeAgro农产品分销系统通知');
    }
}

2. 修改控制器调用逻辑

实例化邮件类时将组装好的$data1数组作为参数传入:

$data1 = [
    'email' => $request->email,
    'password' => $code
];

// 传入用户数据实例化邮件类
$mail = new \App\Mail\RegisterMail($data1);

\Mail::to($request->email)->send($mail);

3. 调整邮件模板输出变量

在视图中直接调用邮件类的公共属性输出对应内容即可:

@component('mail::message')
# 欢迎使用SleAgro农产品管理系统

您可以使用以下凭据登录系统:

用户名:{{ $userData['email'] }}
<br> 
密码:{{ $userData['password'] }}

@component('mail::button', ['url' => 'http://127.0.0.1:8000/login'])
立即登录
@endcomponent

谢谢,<br>
{{ config('app.name') }}
@endcomponent

安全提示:明文发送初始密码存在安全风险,建议新增首次登录强制修改密码的逻辑,降低账号泄露风险。


内容的提问来源于stack exchange,提问作者Nipun Sachinda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:06:02