在Laravel 5.2中发送邮件时,无法在Mail :: send facade中找到视图

时间:2016-11-16 15:48:23

标签: php laravel email view laravel-5.2

我尝试使用Laravel 5.2发送邮件,我尝试使用函数Mail::send

Mail::send('reminder', ['user' => $user], function ($m) use ($user) {
        $m->from('hello@app.com', 'Your Application');

        $m->to($user->email, $user->name)->subject('Your Reminder!');
    });

这就是我在views / reminder.blade.php

中的内容
Hello <?php echo $user->name; ?> this is your mail

现在,当我尝试使用此方法时,它会给我以下错误:

InvalidArgumentException in FileViewFinder.php line 137: View [reminder] not found.

有人可以向我解释为什么会发生这种情况,我该如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:0)

在您的示例中,您指定要使用的刀片模板名为reminder,并且它必须位于resources/views目录的根目录中。

Mail::send('reminder', ['user' => $user], function ($m) use ($user) {
    $m->from('hello@app.com', 'Your Application');

    $m->to($user->email, $user->name)->subject('Your Reminder!');
});

您的视图可能位于另一个目录中,人们通常会将其电子邮件模板放在resources/views/mail或类似名称中,以便将其与其他类型的视图分开。在这种情况下,您可以使用Laravel的点表示法来指定目录:

Mail::send('mail.reminder', ['user' => $user], function ($m) use ($user) {
    $m->from('hello@app.com', 'Your Application');

    $m->to($user->email, $user->name)->subject('Your Reminder!');
});

我认为您的视图不在resources/views目录的根目录中,因此需要放在那里,或者您应该使用点表示法来指定视图所在的目录。