【发布时间】:2021-09-22 08:01:42
【问题描述】:
我查询从具有这样的多对多关系的表中获取信息
$userList = UserListing::where('user_id', $user->id)->with("objects")->paginate(10);
现在,我想限制“对象”表中的结果数量,但同时我想知道总共有多少个对象。
$userList = UserListing::where('user_id', $user->id)->with(["objects"=> function($query) {
$query->take(2);
}])->paginate(10);
但是通过这样做,我无法获得对象的总数,因为我将其限制为 2,然后我尝试像这样处理信息
$userList = UserListing::where('user_id', $user->id)->with("objects")->paginate(10);
foreach ($userList as $key => $value) {
$l = count($value["objects"]);
$value["objects"] = $value["objects"]->take(2);
$value["number_objects"] = $l;
}
但显然这并没有取代集合值 [“objects”],因为它仍然返回 3 个对象,尽管据说被 $value["objects"] = $value["objects"]->take(2); 减少了。我怎样才能用减少的集合替换集合?
【问题讨论】:
标签: php laravel-8 jenssegers-mongodb