1

我确信有一个简单的解决方案,但是在处理与 Laravel Mail::send() 一起使用的表单输入时,我遇到了“非法字符串偏移”错误。

这是处理表单输入的代码,因为它必须是一个数组。

$msg = array(
    'name'=>Input::get('name'),
    'email'=>Input::get('email'),
    'message'=>Input::get('message')
);

然后我尝试通过 Mail::send() 发送它。

Mail::send('emails.question', $msg, function($message) {
    $message->to('myPersonalEmail@domain.com')->subject('Email from your website!');
});

app/views/emails/question.blade.php 模板非常简单。

{{ $msg['name'] }} <br/>
{{ $msg['email'] }} <br/>
{{ $msg['message'] }}

但是我仍然收到以下错误。

    ErrorException (E_UNKNOWN)
Illegal string offset 'name' (View:
[intentionally omitted for privacy]/app/views/emails/question.blade.php)

我相信错误是指 $msg['name'] 不存在,但如果我返回视图,我根本不会收到错误。

return View::make('emails.questions')->with('msg',$msg);

我错过了什么?

4

1 回答 1

1

您已$msg作为关联数组传递,因此$msg数组的项目可用于视图$key。在您的情况下,这意味着$name,$email等等。app/views/emails/question.blade.php 现在会是这个样子

{{ $name }} <br/>
{{ $email }} <br/>
{{ $message }}
于 2015-02-11T01:59:15.813 回答