【问题标题】: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();
      

    警告:由于没有发布代码,这主要是概念,尚未经过测试,因此您必须使用它才能使其以您想要的方式工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多