Отправка электронной почты с помощью laravel, но не распознающая переменную

Я пытаюсь отправить письмо через 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 }} 

Теперь он работает нормально.