2017-03-12 9 views
0

私は電子メールを使用して私のメッセージ通知に問題があります。なぜそれがforeach内でエラーを生成するのですか? この部分はエラーです "$ all_ngo"未定義の変数:all_ngo。メールを送信するために使用するためにMySQLデータベースからのメールにアクセスする

$pend = AddRequest::where('ship_id','=',$ship_id)->get(); 
$all_ngo = []; 
foreach ($pend as $id) { 
    array_push($all_ngo, $id->ngo_id); 
} 

$orga_email = Auth::User()->orgainfo->orga_email; 
$staffName = Auth::User()->orgainfo->inchargelname.' '. Auth::User()->orgainfo->inchargefname; 
$name = $scholars->scholar_fname.' '.$scholars->scholar_mname.' '.$scholars->scholar_lname; 
$input = array(
    'name' => $staffName, 
    'email' => $orga_email, 
    'msgs' => 'asd' .' '. $name.'. '.'Hoping for your favorable response. Thank you!' 
); 
Mail::send('emails.mailMessage', $input, function($message){ 
    $message->from('[email protected]'); 
    foreach ($all_ngo as $id3) {<-------Undefined variable: all_ngo 
     $user = User::find($id3); 
     $ngo_email2 = $user->ngo_email; 
     $message->to($ngo_email2)->subject('Request For Sponsorship'); 
    } 
}); 

答えて

2

$all_ngoは範囲外です。あなたは、関数にglobal $all_ngo;を追加することによってこの問題を解決することができます

Mail::send('emails.mailMessage', $input, function($message) { 
    global $all_ngo; 

    $message->from('[email protected]'); 
    foreach ($all_ngo as $id3) {<-------Undefined variable: all_ngo 
    $user = User::find($id3); 
    $ngo_email2 = $user->ngo_email; 
    $message->to($ngo_email2)->subject('Request For Sponsorship'); 
    } 
}); 

または変数にアクセスするには無名関数を許可する:

Mail::send('emails.mailMessage', $input, function($message) use ($all_ngo) { 
    $message->from('[email protected]'); 
    foreach ($all_ngo as $id3) {<-------Undefined variable: all_ngo 
    $user = User::find($id3); 
    $ngo_email2 = $user->ngo_email; 
    $message->to($ngo_email2)->subject('Request For Sponsorship'); 
    } 
}); 
+1

卿はそれが私は2番目のオプションを使用し、今働いているあなたに感謝します。 – Gatzmar

関連する問題