换句话说,假设我有这样的查询:
return Location::valid()
->with('owners', 'gardeners')
->withCount('gardeners')
->get();
返回一些json:
[
{
name: 'LocationA',
nb_gardeners_max: 3,
owners: [...],
garderners: [...],
garderners_count: 2
}
]
在json响应中,我想添加一些自定义条目,例如 is_full 和 available_places :
[
{
name: 'LocationA',
nb_gardeners_max: 3,
owners: [...],
garderners: [...],
garderners_count: 2,
...
is_full: false,
available_places: 1
}
]
我想它与raw / join / aggregate有关...但我真的不明白该怎么做。任何帮助将不胜感激
修改
Minhajul答案非常有用,但是无法对附加属性执行WHERE子句。
Location::where('is_full',true)->get() // NOT WORKING
虽然它仍然可以对其执行filter(),但我想使用JOIN来执行单个查询
答案 0 :(得分:5)
为此,您可以添加数据库中没有相应列的属性。为此,您需要修改模型所需的全部内容
public function getIsFullAttribute()
{
return $this->attributes['name'] == 'value';
}
创建此访问者后,您需要在模型中添加它。
protected $appends = ['is_full'];
希望它会对你有帮助。