【问题标题】:Laravel pass variables to mail template?Laravel 将变量传递给邮件模板?
【发布时间】:2017-11-11 03:16:50
【问题描述】:

我的问题是我想将变量从我的 EmailController 发送到我的邮件视图,然后通过电子邮件发送到该地址。我已经尝试了几件事,但没有奏效。希望你能帮助我。

我的控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Mail\Email;
use Mail;

class EmailController extends Controller
{
public function sendMail(Request $request)
{

    $option = $request->input('vraag');
    $title = $request->input('onderwerp');
    $body = $request->input('bericht');
    $email = $request->input('email');
    $gender = $request->input('aanhef');
    $name = $request->input('naam');

    $data = array(
        'option' => $option,
        'title' => $title,
        'body' => $body,
        'e-mail' => $email,
        'gender' => $gender,
        'name' => $name
    );

    $receiverAddress = 'test@example.com';

           return view('emails.email')->with('option', 'title', 'body', 'e-mail', 'gender', 'name');



}
}

我希望将请求变量添加到我的邮件视图中。 我收到错误:未定义的变量:数据。

我的观点:

<!DOCTYPE html>
<html>
<head>
   <title></title>
</head>
<body>
   <h1>Contactformulier</h1>
   <?php
     echo $data['option'];
   ?>
</body>
</html>

【问题讨论】:

    标签: php html laravel email laravel-5


    【解决方案1】:

    设置正确,但您应该访问$option 而不是$data['option']

    奖励:您可以使用 View::share('foo', 'bar') 将变量传递给电子邮件

    【讨论】:

    • 非常感谢!这就是解决方案!
    【解决方案2】:

    你可以用这个:

     return view('mailview')->with('name', 'email');
    

    【讨论】:

    • 我试过了,但我收到错误“未定义的变量:数据”。
    【解决方案3】:

    您可以将变量传递给电子邮件模板:

            Mail::send('emails.templatename', $data, function ($m) {
                $m->from(env('INFO_EMAIL'));
                $m->to(env('PROJECT_EMAIL'), 'admin')->subject('Mail Subject');
            });
    

    【讨论】:

      猜你喜欢
      • 2015-12-11
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 2021-06-16
      • 2019-04-03
      • 2011-05-08
      • 2015-08-24
      • 1970-01-01
      相关资源
      最近更新 更多