我有这样的情况,我想更新 bool 字段,即如果它是 0,则用 1 更新它,反之亦然。我已经编写了 mysql 查询,但由于我是 laravel 的新手,所以我在将它转换为 laravel 支持的格式时遇到了一些麻烦。
以下是我的查询:
update super_admins set status = CASE WHEN status = 0 then 1 else 0 end
where primary_key = 3;
这方面的一个小线索将是一个很大的帮助。谢谢你
最佳答案
使用变量
$status = true; //we assume status is true (1) at the begining;
SuperAdmin::where('id', 3)->update([
'status' => !$status //becomes false (0)
]);
使用查询生成器
DB::table('super_admins')
->where('id', 3)
->update([
'status' => !$status
]);
如果变量未知,您有一些方法。获取并切换它。
$sadmin = SuperAdmin::find(3);
$sadmin->status = !$sadmin->status;
$sadmin->save();
直接在查询中
DB::update('update super_admins set status = !status where primary_key = ?', [3]);
关于php - Laravel 用例更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42572924/