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

Laravel:如何在Blade邮件视图中获取收件人邮箱地址?

如何在Laravel Blade邮件视图中直接获取收件人邮箱地址

当然可以实现!不用每次手动把收件人邮箱塞进$data里反复传递,我们可以通过Laravel的Mailable类来优雅解决这个问题,让你在Blade视图(包括布局模板)里直接用{{ $to }}拿到收件人地址。

具体实现步骤

  1. 修改你的Mailable类
    打开你的ActivationEmail类(或者你自定义的Mailable类),在build方法里自动获取收件人信息并传递给视图:

    namespace App\Mail;
    
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;
    
    class ActivationEmail extends Mailable
    {
        use SerializesModels;
    
        public $data;
    
        public function __construct($data)
        {
            $this->data = $data;
        }
    
        public function build()
        {
            // 获取第一个收件人的邮箱(如果有多个收件人,可按需遍历$this->to集合)
            $recipientEmail = $this->to->first()->email;
    
            // 将收件人邮箱传递给视图(包括布局模板)
            return $this->view('emails.activation')
                        ->with('to', $recipientEmail);
            
            // 如果是Markdown邮件,替换成下面的代码:
            // return $this->markdown('emails.activation')
            //             ->with('to', $recipientEmail);
        }
    }
    
  2. 在Blade视图中直接使用
    现在不管是在邮件内容视图还是布局模板里,都可以直接用{{ $to }}调用收件人邮箱了,比如退订链接:

    <a href="{{ route('unsubscribe', ['email' => $to]) }}">点击退订</a>
    

扩展优化(可选)

如果你的项目里有多个Mailable类,还可以创建一个基类Mailable,把提取收件人邮箱的逻辑写到基类的build方法里,其他Mailable类继承这个基类,就能让所有邮件都自动具备这个能力,不用重复写代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:56:31