【问题标题】:I need laravel to return all object attributes upon saving including null attributes我需要 laravel 在保存时返回所有对象属性,包括空属性
【发布时间】:2016-11-03 16:42:56
【问题描述】:
我有一个模型实例,我使用$my_instance->fill($request_json)从发布请求中设置属性,并在使用$my_instance->save()将实例保存为数据库中的记录后,我想接收保存的对象及其所有属性使用return response()->json($my_instance)。现在,只要我在发布请求正文内的模型类上提供我在 protected $fillable = [] 中设置的所有属性,这一切正常。但是当我只想在发布请求中发送部分属性时,会发生什么是在修补程序内部我看到跳过的属性设置为空。这可以。但问题是,当我使用return response()->json($my_instance) 返回时,我看不到跳过的属性,我希望它们返回,即使它们在我的数据库中为空。有没有办法指示 laravel 这样做?
【问题讨论】:
标签:
json
laravel
null
save
return
【解决方案1】:
您的问题可能的可能实现是:
- 允许在您的模型中填充所有可能被清空的字段。
-
然后,使用带有集合的中间件来做:
$form_stuff = $request->all();
$form_stuff = collect($form_stuff);
$things_you_want = $form_stuff->only('wanted_field_1','wanted_field_2');
$things_that_should_be_null = $form_stuff->only('nulled_field_1','nulled_field_2');
$keys = array_keys($thins_that_should_be_null);
$values = array_fill(0, count($keys), null);
$new_array_of_nulled_things = array_combine($keys, $values);
var_dump($things_you_want);
var_dump($new_array_of_nulled_things);
die();
警告:由于没有发布代码,这主要是概念,尚未经过测试,因此您必须使用它才能使其以您想要的方式工作。