我在更新雄辩模型时有一个奇怪的问题,我使用复选框(1 || undefined)并使用
验证补丁后的所有数据 $input = $request->all();
$service->update($input);
我试图专门检查复选框
$input['active'] = ($request->has('active') && $input['active']) ? 1 : 0
但它仍然不会影响数据库。
当我转储Request
时,我可以看到active:
1
或0
,但没有任何改变update()
上的数据库
我做了一个快速测试并使用
$service->active = ($request->has('active') && $input['active']) ? 1 : 0 ;
$service->save();
完成了这项工作。但为什么update()
没有更新此字段?
答案 0 :(得分:11)
如果$request->active
返回true,但仍未保存在数据库中,我打赌您忘记将active
添加到$fillable
数组中:
protected $fillable = ['something', 'something_else', 'active'];
答案 1 :(得分:0)
你试过了吗?
$input = $input->except(['active']);
$input['active'] = ($request->has('active') && $input['active']) ? 1 : 0;
$service->update($input);
希望这有帮助。