Laravel 更新集合并将其返回
我想在循环遍历集合之前更新它。 是否有一种方法可以将emails集合的sent值设置为true,并在实际循环之前返回集合Laravel 更新集合并将其返回,laravel,Laravel,我想在循环遍历集合之前更新它。 是否有一种方法可以将emails集合的sent值设置为true,并在实际循环之前返回集合 $emails = Email::where('sent', false); $emails->update(array("sent" => true)); foreach ($emails as $email) { //send email } 我希望能够在某个地方调用->get(),但我无法在更新或初始查询时调用->get()不要忘记在电子邮件::wh
$emails = Email::where('sent', false);
$emails->update(array("sent" => true));
foreach ($emails as $email) {
//send email
}
我希望能够在某个地方调用->get(),但我无法在更新或初始查询时调用->get()不要忘记在
电子邮件::where('sent',false)
上调用get
,这是一个照亮\雄辩\构建器
实例
您可以使用以下内容:
tap(Email::where('sent', false)->get(), function ($emails){
Email::whereIn('id', $emails->pluck('id')->all())->update(['sent' => true]);
})->each(function($email){
// Send email
});
tap
函数接受两个参数,第一个参数是要在其上运行第二个参数(回调)的值,然后tap
函数返回第一个传递的值,您可以在这里轻松循环
参见
$emails=Email::where('sent',false)代码>您的测试记录的当前值是多少?谢谢!我以前从未用过水龙头,很酷!我最初在查询中使用了->get(),但之后无法调用update。