28

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}}
4

4 に答える 4

76

$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('info@aallouch.com', 'myName')->subject('Mail via aallouch.com');
    });

を使用して変数をクロージャーに渡す必要があります

use ($contactEmail, $contactName)

上記のとおりです。

于 2013-10-16T19:56:35.290 に答える
5

このエラーが発生し、解決しました。$messageキーワードを$commentfrom $dataに置き換えました。

以下の例:

$data = array('name' => 'vikas', 'message' => 'test message');

見る

{{ $name }}
{{ $message }}

エラーになってる

$data = array('name' => 'vikas', 'comment' => 'test message');

{{ $name }}
{{ $comment }}

今では正常に動作しています。

于 2014-10-04T17:52:35.320 に答える