【发布时间】:2016-04-24 05:03:24
【问题描述】:
假设我的模型具有以下数据库结构:
name:string
last_name:string
我希望更新模型,给定这个 $request->input() 数组:
name => 'Quinn',
last_name => 'Daley',
middle_name => 'Phill'
我会收到一条错误消息,因为它会尝试更新数据库中不存在的 middle_name 字段。
所以这是我的问题:
我怎样才能让它只更新现有字段?不使用protected $fillable 属性。
编辑:我不想使用 $fillable 的原因是我不想列出数据库中的所有现有字段。如果我有一个包含 50 个字段的大型模型怎么办?是否有可能只接受来自$request->input()的模型数据库中存在的参数??
更新
使用$model->getAttributes() 有一个更清洁的解决方案:
$user->update($request->only(array_keys($user->getAttributes()))
如果您为模型使用不同的$connection,此解决方案也会更好,我就是这种情况。
【问题讨论】:
标签: php laravel laravel-5 eloquent laravel-5.2