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('[email protected]', 'myName')->subject('Mail via aallouch.com');
});
編集:
template.mail
Name: {{$name}}
Email: {{$email}}
Message:{{$message}}
$ data変数は次のように定義されているため:
$data = array(
'name'=>$contactName,
'email'=>$contactEmail,
'message'=>$contactMessage
);
ビューで使用可能な$ dataはありませんが、直接使用できます:
{{ $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('[email protected]', 'myName')->subject('Mail via aallouch.com');
});
を使用して変数をクロージャに渡す必要があります
use ($contactEmail, $contactName)
上記のように。
このエラーが発生し、解決しました。 $message
キーワードと$comment
from $ data。
以下の例:
$data = array('name' => 'vikas', 'message' => 'test message');
見る
{{ $name }}
{{ $message }}
エラーが発生しています
$data = array('name' => 'vikas', 'comment' => 'test message');
{{ $name }}
{{ $comment }}
今では問題なく動作しています。
ソースコード を見ると、次の行が表示されます。
$data['message'] = $message = $this->createMessage();
したがって、message
フィールドはその行で上書きされます。 text
やcomment
など、フィールドには他の名前を使用します。