2016-07-12 17 views
0

を使用して一度に複数のメールを送信することができました。一度に1人のユーザーにメールを送信するように管理しましたが、1人で複数のユーザーにメールを送信できませんでした。私は多くの方法を試しましたが、以下は、複数の電子メールを送信しようとしているサンプルコードです。Laravel 4.2

if (isset($_POST['searchbutton'])) {
   $data = $query->where('blood_type', '=', "$search")
       ->Where('state', '=', "$state")->get();

   if (isset($POST['emailbutton'])) {
    foreach ($data as $row)
     Mail::send('emails.notify', array('name' => 'Name'), function($message) {

      $message->to($row->email, $row->name)->subject('Hello');
     });
   }
  }
 

ありがとうございます。ここで

答えて

0

は、すべてのユーザーが同じ電子メールを受信することを想定し、変更のいくつか提案されている、あなたは、ユーザーの名前と各電子メールをカスタマイズすることはありません意味:

if (isset($_POST['searchbutton'])) { 
    $data = $query->where('blood_type', '=', "$search") 
    ->Where('state', '=', "$state")->get(); 

    $emails = $query->where('blood_type', '=', "$search") 
    ->Where('state', '=', "$state")->lists('email'); 

    if (isset($POST['emailbutton'])) { 
    Mail::send('emails.notify', array(), function($message) use ($emails) { 
     $message->to($emails)->subject('Hello'); 
     }); 
    } 
} 
0

ここで実際のエラーが変数ということです$rowあなたの閉鎖の範囲にはありません。これを修正するには、useキーワードを使用する必要があります。すなわち

foreach ($data as $row){ 
    Mail::send('emails.notify', array('name' => 'Name'), 
     function($message) use ($row) { 
      $message->to($row->email, $row->name)->subject('Hello'); 
     } 
    ); 
} 

about PHP closures hereを読むことができます。