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('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);
Что мне не хватает?
1 ответ
Вы прошли $msg
в качестве ассоциативного массива, поэтому элементы $msg
массив доступны для просмотра $key
, Это значит, что в вашем случае, как $name
, $email
и так далее. Приложение /views/emails/question.blade.php теперь будет таким
{{ $name }} <br/>
{{ $email }} <br/>
{{ $message }}