Я пытаюсь отправить письмо через Laravel, но я получаю эту ошибку:
Неопределенная переменная: contactEmail
Хотя он и определился над ним. Что здесь происходит?
контроллер
$contactName = Input::get('name'); $contactEmail = Input::get('email'); $contactMessage = Input::get('message'); $data = array('name'=>$contactName, 'email'=>$contactEmail, 'message'=>$contactMessage); Mail::send('template.mail', $data, function($message) { $message->from($contactEmail, $contactName); $message->to('info@aallouch.com', 'myName')->subject('Mail via aallouch.com'); });
РЕДАКТИРОВАТЬ:
template.mail
Name: {{$name}} Email: {{$email}} Message:{{$message}}
Поскольку ваша переменная $ data определяется как:
$data = array( 'name'=>$contactName, 'email'=>$contactEmail, 'message'=>$contactMessage );
У вас не будет доступных данных в вашем представлении, но вы можете использовать их напрямую:
{{ $name }} {{ $email }} {{ $message }}
РЕДАКТИРОВАТЬ:
И ваш контроллер должен иметь:
$contactName = Input::get('name'); $contactEmail = Input::get('email'); $contactMessage = Input::get('message'); $data = array('name'=>$contactName, 'email'=>$contactEmail, 'message'=>$contactMessage); Mail::send('template.mail', $data, function($message) use ($contactEmail, $contactName) { $message->from($contactEmail, $contactName); $message->to('info@aallouch.com', 'myName')->subject('Mail via aallouch.com'); });
Вы должны передать свои переменные в закрытие, используя
use ($contactEmail, $contactName)
Как показано выше.
У меня есть эта ошибка, и я решил ее. Я заменил ключевое слово $message
на $comment
из $ data.
Пример:
$data = array('name' => 'vikas', 'message' => 'test message');
Посмотреть
{{ $name }} {{ $message }}
Это ошибка
$data = array('name' => 'vikas', 'comment' => 'test message'); {{ $name }} {{ $comment }}
Теперь он работает нормально.