我已经添加到Laravel命令mail::end中,以向所有符合条件的用户发送电子邮件。每当我运行foreach语句的第一部分时,但每当它到达电子邮件时都会给我一个[ErrorException] Undefined Variable: member
。我的火函数代码如下。
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');
});
}
}
使用Mail::send
,您可以使用闭包(也称为匿名函数)。要在闭包中使用局部变量,您必须使用 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');
}
);