Tan*_*erg 3 laravel eloquent laravel-6
我有products以下结构的表。
id | name | promote
列promote是布尔类型的。
我想将boolean列的值1设置0为选定的行并设置为非选定的行。我在控制器中有以下代码来处理这个查询。
$yes = Tour::whereIn('id', $request->promote)->get();
$no = Tour::whereNotIn('id', $request->promote)->get();
foreach ($yes as $item) {
$item->promote = 1;
$item->save();
}
foreach ($no as $item) {
$item->promote = 0;
$item->save();
}
Run Code Online (Sandbox Code Playgroud)
我从表单请求中得到关注。
上面的代码确实有效,但我认为它不是很有效。我正在寻找以更有效的方式实现结果的可选方法。
而不是检索结果,循环通过,您可以直接更新,
$yes = Tour::whereIn('id', $request->promote)->update(['promote' => 1]);
$no = Tour::whereNotIn('id', $request->promote)->update(['promote' => 0]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6316 次 |
| 最近记录: |