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

Laravel邮件视图无法渲染传递的数据问题排查

解决Laravel Mail发送时Blade变量未渲染的问题

嘿,这个问题我之前踩过一模一样的坑!咱们一步步排查解决:

  • 检查视图文件后缀
    首先确认你的视图文件名是不是NotifyUserExpiring.blade.php?如果只叫NotifyUserExpiring.php,Laravel会把它当成普通PHP文件,完全不会解析Blade语法,直接输出{{ $user->first_name }}这种原始内容。这是最容易犯的小失误~

  • 确认邮件类正确传递变量给视图
    打开你的NotifyUserExpiring邮件类,先确保构造函数接收并保存了用户实例:

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

    然后在build()方法里,要通过with()把变量传给视图,或者直接在view()里传数组:

    public function build()
    {
        // 两种方式都可以,选你顺手的
        return $this->view('web.mail.NotifyUserExpiring')
                    ->with('user', $this->user);
        // 或者
        // return $this->view('web.mail.NotifyUserExpiring', ['user' => $this->user]);
    }
    
  • 检查Mail调用时是否传对了用户
    确保你调用Mail发送的时候,把正确的用户实例传给了邮件类:

    use App\Mail\NotifyUserExpiring;
    use Illuminate\Support\Facades\Mail;
    
    // ...
    Mail::to($targetUser)->send(new NotifyUserExpiring($targetUser));
    
  • 清除视图缓存
    如果上面都没问题,但还是没渲染,可能是视图缓存搞的鬼。执行这条命令清一下缓存:

    php artisan view:clear
    

一般来说,这几个步骤就能搞定Blade变量不渲染的问题啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:14:49