【发布时间】:2020-07-18 11:08:09
【问题描述】:
我们正在尝试使用JSON datatypes 来存储Profile 动态数据,并且不知道要添加到模型中fillable 属性的所有硬编码字段名称。如何设置(insert如果密钥不存在|update如果密钥存在)只有一个键,而不是全部?
例如,如果我们只想更新 age 并且我们使用:
$model = Profile::find($profile_id);
$model->options = json_encode(['age' => '21']);
$model->save();
此解决方案不是一个很好的选择,因为它会覆盖其他所有内容。 我们如何在不更改其他字段(JSON 键)的情况下仅设置所需字段?
【问题讨论】:
-
这是您在 Laravel 中的最佳选择:laravel.com/docs/7.x/queries#updating-json-columns 您可以将
DB::table('...')替换为Profile::query()。
标签: eloquent mysql-json