我有一个模型实例,我使用$my_instance->fill($request_json)
从post请求设置属性,并在使用$my_instance->save()
实例作为数据库中的记录保存后,我希望收到保存的对象使用return response()->json($my_instance)
的所有属性。现在这个工作正常,只要我提供我在post请求体内的模型类的protected $fillable = []
中设置的所有属性。但是当我想在post请求中只发送部分属性时,会发生内部修补程序,我看到跳过的属性设置为null。这可以。但问题是当我使用return response()->json($my_instance)
返回时,我没有看到跳过的属性,我希望它们返回,即使它们在我的数据库中为空。有没有办法指示laravel这样做?
答案 0 :(得分:0)
您的问题的可能实现 COULD 可以:
然后,使用带有集合的中间件来执行:
$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();
警告:由于没有发布代码,这只是概念,并且尚未经过测试,所以您必须使用它才能让它按照您想要的方式运行。