引言
最近在写任务中,碰到一个问题,需要批量更新多条数据,但是Laravel没有提供这样的方法,Google了一些方法,刚好借着任务来举例说明一下。
任务要求
任务是一个简单的清除未读通知的API,其实就是把通知表中符合user id 和 is read = 0 的行中的 is_read改为1(0代表未读,1代表已读)。
http://files.jb51.net/file_images/article/201711/2017112792220568.png?2017102792231
方法1
我首先想到的是利用where()方法查出user id和is read符合条件的notices,然后利用foreach循环和save()更新数据表。
$notices = Notice::where('user_id', $userId)
->where('is_read', 0)
->get();//得到user_id 和 is_read 符合的notices
foreach($notices as $notice) {
$notice->is_read = 1;
$notice->save();
} //更新数据表
页:
[1]