所以我有兩種模型,客戶端和項目,客戶端與項目有許多關係。我只是試圖將客戶端的項目計數添加到JSON響應中,但我無法使其工作。添加withCount到集合json
我的控制器只是返回所有的項目;
public function index(Client $client)
{
return $client->all();
}
而我的模型包含下面;
protected $appends = ['client_projects_count'];
/**
* Create a relationship between this client and it's projects
*/
public function clientProjects() {
return $this->hasMany('App\Project');
}
public function getClientProjectsCountAttribute()
{
return $this->withCount('clientProjects');
}
這只是將client_projects_count
添加到響應,但它是一個空數組。我很接近,如果我dd($this->withCount('clientProjects')->get())
我可以看到client_projects_count與正確的計數,但如果我刪除dd
並保留->get()
然後我得到一個內部服務器錯誤。
此外,它可能只加載這個爲index()
方法而不是每一個?
因此,無論最後兩行中的'getClientProjectsCountAttribute'去? '$ client'從哪裏來?我嘗試將它改爲'$ this',併爲$ client-> with和'return $ client-> withCount(')調用未定義的方法Illuminate \\ Database \\ Query \\ Builder :: all()項目') - > get();'最後一行 – KeironLowe
@KeironLowe您需要一個客戶端或客戶端列表的projectCount? –
客戶列表,我正在列出所有客戶,並且想要添加客戶擁有的項目數量 – KeironLowe