2014-11-29 2 views
0

Laravel 명령 mail :: send를 추가하여 기준을 충족하는 모든 사용자에게 전자 메일을 보냈습니다. 내 foreach 성명서의 첫 부분을 실행할 때마다 이메일을받을 때마다 [ErrorException] Undefined Variable: member을 제공합니다. 내 화재 기능 코드는 다음과 같습니다. Mail::sendLaravel 명령의 정의되지 않은 변수

public function fire() 
{ 
    $members = Member::where('expire', '=', Carbon::now()->today()); 

    $this->info('We found ' . $members->count() . ' expiring today (' . Carbon::now()->today() . ')!'); 

    foreach ($members->get() as $member) { 
     $member->active = "0"; 
     $member->save(); 
     $this->comment($member->first_name . ' has been updated.'); //This is the last line which runs 

     Mail::send('emails.member.membership_expired', array('name'=>$member->first_name. ' ' . $member->last_name), function($message){ 
      $message->to($member->email, $member->first_name . ' ' . $member->last_name)->subject('Your Membership has Expired'); 
     }); 
    } 

} 

답변

3

당신은 closure (또한 익명 함수)를 사용합니다. 클로저 내부에서 로컬 변수를 사용하려면 use과 함께 전달해야합니다. 좋아요 :

Mail::send('emails.member.membership_expired', 
    array('name'=>$member->first_name. ' ' . $member->last_name), 
    function($message) use ($member){ 
     $message->to($member->email, $member->first_name . ' ' . $member->last_name)->subject('Your Membership has Expired'); 
    } 
);