Laravel 4使用邮件类联系表单,错误未定义$ data来自包含电子邮件的视图

时间:2014-02-04 23:51:24

标签: php email laravel laravel-4 swiftmailer

我第一次尝试使用Laravel的Mail类,但遇到了一些困难。在尝试将联系表单提交给邮件类时,我收到一个未定义的变量错误。

控制器

public function store()
{
    $validation = new Services\Validators\Contact;

    if($validation->passes()) {

       $fromEmail = Input::get('email');
       $fromName = Input::get('name');
       $subject = "Email from user at website.com";
       $data = Input::get('message');

       $toEmail = 'test@dummyemail.com';
       $toName = 'Mitch Glenn';

       Mail::send('emails.contact', $data, function($message) use ($toEmail, $toName, $fromEmail, $fromName, $subject){

           $message->to($toEmail, $toName);

           $message->from($fromEmail, $fromName);

           $message->subject($subject);
       });

    return Redirect::to('/')
        ->with('message', 'Your message was successfully sent!');
    }

    return Redirect::back()
        ->withInput()
        ->withErrors($validation->errors);
}

查看emails.contact

<html>
   <body>
       Message: {{ $data->message }}
   </body>
</html>

我很困惑为什么$data变量没有传递给视图。我收到此错误:Undefined variable: data感谢您提供任何帮助或见解。

1 个答案:

答案 0 :(得分:3)

更改以下行

$data = Input::get('message');

到这个

$data = [ 'msg' => Input::get('message') ];

View中,您可以使用

Message: {{ $msg }}

更新:将message传递给data时,请勿使用View作为变量名称。