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

Laravel8自定义邮件Blade模板如何传递并单独渲染字段数据

你当前的问题是由于使用@foreach遍历整个关联数组,所有字段都会套用统一的输出结构,无法单独定制样式。直接通过数组键名提取对应字段即可实现个性化调整。

修改后的Blade模板示例

你可以自定义每个字段的样式、标签类型,不需要遍历整个数组:

<!DOCTYPE html>
<html>
<head>
    <title>自定义邮件通知</title>
    <style>
        /* 可单独为不同字段定义专属样式 */
        .greeting { font-size: 20px; font-weight: bold; color: #2d3748; }
        .content { margin: 20px 0; line-height: 1.6; color: #4a5568; }
        .action-btn { display: inline-block; padding: 10px 24px; background: #2b6cb0; color: #fff; border-radius: 4px; text-decoration: none; }
        .thanks { margin-top: 30px; color: #718096; }
    </style>
</head>
<body>
    <h1 class="greeting">您好,{{ $data['name'] }}</h1>
    <div class="content">{{ $data['body'] }}</div>
    <a href="{{ $data['offerUrl'] }}" class="action-btn">{{ $data['offerText'] }}</a>
    <p class="thanks">{{ $data['thanks'] }}</p>
</body>
</html>

如果要避免数组键不存在导致的模板报错,可以使用默认值语法:{{ $data['name'] ?? '尊敬的用户' }}

可选优化:简化模板字段调用

你可以在通知类中直接传递数组,不需要外层套data键,模板中可以直接调用字段名:

return (new MailMessage)->view(
    'email_notification',
    $this->offerData // 直接传原始数组
);

修改后模板里可以直接写{{ $name }}、{{ $body }},不需要每次写$data['xxx']。

内容的提问来源于stack exchange,提问作者NUUR FATIN SHAHIRAH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:15:04