非法偏移类型laravel 5.7

时间:2019-02-22 08:19:26

标签: laravel laravel-5 laravel-5.7

我想用相同的值更新4个字段,所以我做到了:

UpdateModel::where('model_id', $id)->update([['is_1_ans', 'is_2_ans', 'is_3_ans', 'is_4_ans'] => 1]);

但是我laravel给了我这个错误;

非法偏移类型

我知道我做错了,但是我想知道如何根据需要更新具有相同值的多个字段?

1 个答案:

答案 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);

请参见array_fill_keys documentation