2016-07-12 9 views
0

Ich habe es geschafft, das Senden von E-Mail an einen Benutzer zu einer Zeit, aber nicht an mehrere Benutzer gleichzeitig. Obwohl ich viele Möglichkeiten ausprobiert habe, ist unten ein Beispielcode, mit dem ich versuche, mehrere E-Mails zu senden.Senden mehrerer E-Mails gleichzeitig mit 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');
     });
   }
  }
 

Vielen Dank.

Antwort

0

Hier sind einige Vorschläge von Änderungen unter der Annahme, dass alle Benutzer die gleiche E-Mail erhalten, bedeuten, dass Sie nicht jede E-Mail mit Benutzername werden Customizing:

hier
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

Der tatsächliche Fehler ist, dass der Variable $row liegt nicht im Bereich Ihrer Schließung. Um dies zu korrigieren, müssen Sie das Schlüsselwort use verwenden. d.h.

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

Sie können mehr about PHP closures here lesen.