我想用相同的值更新4个字段,所以我做到了:
UpdateModel::where('model_id', $id)->update([['is_1_ans', 'is_2_ans', 'is_3_ans', 'is_4_ans'] => 1]);
但是我laravel给了我这个错误;
非法偏移类型
我知道我做错了,但是我想知道如何根据需要更新具有相同值的多个字段?
答案 0 :(得分:4)
我不认为这是开箱即用的,但是您可以这样做以将键的值填充:
// The keys you want to update
$keys = ['is_1_ans', 'is_2_ans', 'is_3_ans', 'is_4_ans'];
// We use array_fill_keys to fill "1" to all the keys above
$updates = array_fill_keys($keys, 1);
// This will result in
// $updates = ['is_1_ans' => 1, 'is_2_ans' => 1, 'is_3_ans' => 1, 'is_4_ans' => 1];
// Then you do your usual updates ;)
UpdateModel::where('model_id', $id)->update($updates);