2017-05-09 3 views
1

ネストされたモデルでネストされたモデルがいくつかあります。出力データモデルを操作してカスタムJSONを構築する最善の方法は?

出力データモデルを操作してカスタムJSONを構築する最善の方法はありますか?

今、各モデルを繰り返し、それぞれを別々の配列に追加したり、キーで結合したりするのは不愉快です。

+0

パッケージは[フラクタル](http://fractal.thephpleague.com/)は、このために特別に構成されています。 – jfadich

+0

それは私のためには機能しません – John

+1

どうしてうまくいかないのですか? – jfadich

答えて

0

デフォルトでは、protected $hiddenまたはprotected $visibleの配列をモデルクラスのプロパティとして追加できます。これにより、自動的に非表示になるか、特定の列のみがJSONレスポンスで表示されます。

https://laravel.com/docs/5.4/eloquent-serialization#hiding-attributes-from-json

また、あなたはJSONにあなたのモデルを変換する際に特定の属性を変更するミューテータを使用することができます。

https://laravel.com/docs/5.4/eloquent-mutators#introduction

JSONにモデルを変換するときにも、あなたのJSONレスポンスにないデータベース内の属性を追加することができます。

https://laravel.com/docs/5.4/eloquent-serialization#appending-values-to-json

class User extends Model { 
    protected $appends = ['is_admin']; 

    public function getIsAdminAttribute() 
    { 
     return $this->attributes['admin'] == 'yes'; 
    } 
} 
関連する問題