2016-11-03 17 views
1

$my_instance->fill($request_json)を使用してポストリクエストから属性を設定するモデルインスタンスがあり、$my_instance->save()をデータベースのレコードとして保存した後、 return response()->json($my_instance)を使用して、すべての属性を持つ保存されたオブジェクトを受信します。これは、私がで設定したすべての属性を投稿要求本文の中のモデルクラスに提供している限り、うまく動作します。しかし、私が投稿要求で属性の一部だけを送信したい場合、スキップされた属性がnullに設定されていることがわかります。これは問題ありません。しかし、問題は私がreturn response()->json($my_instance)を使用して戻ったときです。私はスキップされた属性が表示されず、私のdatabseでそれらがnullであっても返されるようにします。ララベルにそうするよう指示する方法はありますか?null属性を含む保存時にすべてのオブジェクト属性を返すためにlaravelが必要

答えて

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

WARNING:投稿なしコードがなかったので、これはほとんどが単なる概念であり、あなたがプレイする必要がありますので、テストされていませんあなたが望むようにそれを働かせるためにそれを持っています。

関連する問題