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

Posted

技术标签:

【中文标题】使用邮件类的 Laravel 4 联系表单,错误未定义 $data 来自包含电子邮件的视图【英文标题】:Laravel 4 contact form using mail class, error undefined $data from view containing email message 【发布时间】:2014-03-01 05:17:24 【问题描述】:

我第一次尝试使用 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】:

更改以下行

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

到这里

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

在你的View你可以使用

Message:  $msg 

更新:在将data 传递给View 时不要使用message 作为变量名。

【讨论】:

是的,我使用了message,然后将其更改为msg,现在它可以工作了——因此我删除了我的评论!再次感谢 Sheikh Heera! 不客气,真的很高兴再次和你在一起-)

以上是关于使用邮件类的 Laravel 4 联系表单,错误未定义 $data 来自包含电子邮件的视图的主要内容,如果未能解决你的问题,请参考以下文章

PHP 联系表,一直工作到迁移。警告:mail() [function.mail]:mail() 函数的参数错误,邮件未发送

laravel的表单验证(下面有些信息未验证,转的)

Laravel 7 发布联系表给我错误 419

Django 联系电子邮件表单未在模板 home.html 中呈现/显示

我的联系表单验证的小错误。电子邮件验证与我的其余代码纠缠不清

Laravel 4 表单验证在更新表单上应该是唯一的,但如果是当前的则不是