将多个数据传递到电子邮件视图laravel 5.3

时间:2017-01-20 10:05:54

标签: php laravel html-email laravel-5.3

我已经检查了一些关于这个问题的问题,但仍然无法弄清楚。

所以这是我的控制器(我切断了一些代码以简化问题):

public function hour(Request $request)
{
    $user = JWTAuth::parseToken()->authenticate();
    $user->phone = $request->phone;
    $user->city = $request->city;
    $user->street = $request->street;
    $user->save();

    $car = Car::find($request->id);
    $car->status = 'yes';
    $car->save();

    $time = new Reservation();
    $time->from_date = $from;
    $time->to_date =  $to;
    $Reservation_id = $time->id;
    $time->save();

    Mail::to('email@gmail.com')->send(new NewRequestMail($user,$car,$time));

然后在Mailable:

public $car;
public $user;
public $time;

public function __construct($car,$time,$user)
{
    $this->car = $car;
    $this->time = $time;
    $this->user = $user;
}

现在,当我尝试在email.view中获取数据时,请查看此$car->status或尝试获取有关用户$user->street的更多信息。我的电子邮件中显示空白!我唯一得到的是$user->name。有一个更好的方法吗 ?你的帮助将非常感激

1 个答案:

答案 0 :(得分:1)

请使用带有参数的laravel邮件功能

use Mail;


$to = '';
$from = '';
$subject = '';

Mail::send('email.enquiry', compact('user','car','time'), function ($message) use ($to,$from,$subject) {
            $message->from($from)
                    ->to($to)
                    ->subject($subject);

        });

因此,在enquiry.blade.php(电子邮件文件夹内)文件中,您可以访问对象属性