2016-06-22 6 views
2

laravelを使用して電子メールを送信しようとしています。これはサーバー機能のために働いたが、これで私は奇妙なエラーが発生している。未定義の変数 - ラベリング電子メール

ライン$ offerte:

は、ここで私がメールを送信したい場合しかし、私はエラー

未定義の変数を取得し、私は

$offerte = DB::table('offertes') 
     ->select('*') 
     ->where('id', '=', $offerte_id) 
     ->get(); 

    Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user) 
    { 
     $message->from($user->email, 'Foodtruckbestellen.be'); 
     $message->to($offerte->email); 
     $message->subject('Reactie offerte Foodtruckbestellen.be'); 
    }); 

を使用しているコードですmessage-> to($ offerte-> email);は実際にはPHPSTORMで赤で下線が引かれていて、私はその変数を電子メールに使用していません。だから、私はそれが私のエラーがどこにあるのかを知っているだけで、私はそれのための修正を見つけることができません。

+0

データベースから何も返されていないようです。そのSQL文を単独でチェックして、idが存在することを確認しましたか? –

答えて

2

$offerte変数は、クロージャスコープ内で定義されていないので、クロージャに渡す必要があります。

$userと同じように$offerte変数を使用してください。私があなただったら

Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user, $offerte) 
{ 
    $message->from($user->email, 'Foodtruckbestellen.be'); 
    $message->to($offerte->email); 
    $message->subject('Reactie offerte Foodtruckbestellen.be'); 
}); 

さらに、私はあなたがよりクリーンなコードを書くために送信機能の第二引数に渡す配列のためcompactを使用すると思います。

Mail::send('emails.offerte_reactie', compact('offerte', 'user', 'message_text'), function ($message) use ($user, $offerte) 
{ 
    $message->from($user->email, 'Foodtruckbestellen.be'); 
    $message->to($offerte->email); 
    $message->subject('Reactie offerte Foodtruckbestellen.be'); 
}); 
+0

助けてくれました。ありがとう! – Nicolas

2

あなたはそのような機能を使用するために変数$ offerteを追加shoud:

Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user,$offerte) 
1

あなたが故に$ offerte変数を書くのを忘れていました。

Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user, $offerte)