2017-04-30 22 views
0

、私はそのようなクエリを持って言うことができます:私はis_fullのようないくつかのカスタムエントリを追加したいJSONレスポンスにLaravel Eloquent:クエリ応答に列を追加する方法は?つまり

[ 
{ 
    name: 'LocationA', 
    nb_gardeners_max: 3, 
    owners: [...], 
    garderners: [...], 
    garderners_count: 2 
} 
] 

:いくつかのJSONを返す

return Location::valid() 
    ->with('owners', 'gardeners') 
    ->withCount('gardeners') 
    ->get(); 

available_places

[ 
{ 
    name: 'LocationA', 
    nb_gardeners_max: 3, 
    owners: [...], 
    garderners: [...], 
    garderners_count: 2, 
    ... 
    is_full: false, 
    available_places: 1 
} 
] 

私はそれがSOMETを持っていると思いますヒンジは未加工/結合/集約と関係があります...しかし、私は本当にそうする方法を理解していません。すべてのヘルプは大幅に

EDITを理解されるであろう

Minhajulの答えは本当に便利ですが、それは追加の属性にWHERE句を行うことはできません。

Location::where('is_full',true)->get() // NOT WORKING 

それはフィルターを(行うことは可能だが)、その上に、私はそうするために、単一のクエリ

答えて

3

を実行するために、そのためにJOINを使用したいのですが、あなたは持っていない属性を追加することができますこれを行うには、モデルを変更する必要があります。

public function getIsFullAttribute() 
{ 
    return $this->attributes['name'] == 'value'; 
} 

このアクセサーを作成した後、これをモデルに追加する必要があります。

protected $appends = ['is_full']; 

うまくいけば、それはあなたを助けます。

+0

ありがとうございます! – sebap

+0

あなたは一番大歓迎です:) – Minhajul

+0

質問には、それらの属性にwhere句を使用することはできないようです。方法はありますか? – sebap

関連する問題