我需要laravel在保存时返回所有对象属性,包括null属性

时间:2016-11-03 16:42:56

标签: json laravel null save return

我有一个模型实例,我使用$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这样做?

1 个答案:

答案 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();
    

警告:由于没有发布代码,这只是概念,并且尚未经过测试,所以您必须使用它才能让它按照您想要的方式运行。