Laravel Mail :: send () нелегальный оффет ‘имя’

Я уверен, что есть простое решение, но у меня возникла проблема с ошибкой для «недопустимого смещения строки» при обработке ввода формы для использования с 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('[email protected]')->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);

Что мне не хватает?

1

Решение

Вы прошли $msg в качестве ассоциативного массива, поэтому элементы $msg массив доступны для просмотра $key, Это значит, что в вашем случае, как $name, $email и так далее. Приложение / views / emails / question.blade.php теперь будет таким

{{ $name }} <br/>
{{ $email }} <br/>
{{ $message }}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]