PostController.php$customers = $query->orderBy('id', 'desc')->with('agents:agents.id')->get(); foreach ($customers as $customer) { $customer->calculator = $this->calculator($customer); } return response()->json($customers, 200 );Post.phpfunction agents() { return $this->belongsToMany('App\Agent','files','post_id','agent_id'); }這將返回正確的數據,如下所示:[{ "id": 5, "hash": "SqB29tkfm1dwGsXp4ZCV", "agents": [{ "id": 1, "pivot": { "post_id": 5, "agent_id": 1 } }] }, { "id": 4, "hash": "SqH29tkfm1dwGsXp4ZCV", "agents": [] }, { "id": 3, "hash": "RqH29tkfm1dwGsXp4ZCV", "agents": [{ "id": 1, "pivot": { "post_id": 3, "agent_id": 1 } }] }, { "id": 1, "hash": "RqH29tkfm1dwGrXp4ZCV", "agents": [{ "id": 1, "pivot": { "post_id": 1, "agent_id": 1 } }] }]但我想要的是只返回那些有空代理的數據[],在這種情況下,應該只返回 id4因為代理數組是空的。我怎樣才能做到這一點?
2 回答

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
你可以同時使用 dontHave 或 whereDoesntHave like
$customers = $query->orderBy('id', 'desc')->doesntHave('agents')->get();
或者
$customers = $query->orderBy('id', 'desc')->whereDoesntHave('agents')->get();
- 2 回答
- 0 關注
- 182 瀏覽
添加回答
舉報
0/150
提交
取消