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 关注
- 162 浏览
添加回答
举报
0/150
提交
取消