ThinkPHP 6.0 多对多关联 limit 查询有问题
ThinkPHP 6.0 多对多关联 limit 查询有问题,限制的是父级数据的limit并不是关联数据下的limit, withLimit也是一样的(证明下我看文档了…)
代码:
$data = $this->mediaItemFlagModel()->with([
'item' => function (Relation $query) {
$query->with('image')
->field('id,title,type,is_free,vip_free,market_price,sales_price,vip_price,image,browse,check,status,order')
->where('check', true)
->where('status', 1)
->order('order', 'desc')
->withLimit(1)
;
}
])
->field('id,name,description')
->where('status',1)
->order('order')
->select();
返回数据
"flag": [
{
"id": 1,
"name": "asdasd",
"item": [
{
"id": 93,
"title": "下",
"type": 1,
"order": 61,
"pivot": {
"media_id": 93,
"flag_id": 1
}
}
]
},
{
"id": 14,
"name": "测试专区 请勿删除",
"description": "测试专区 请勿删除",
"item": [] // 理论上这条数据应该也返回一条数据的
}
]
}
想实现关联数据下的limit限制(就是item数量),使用过limit和withLimit返回的数据下的关联的limit的数量不对…发现的问题是,在关联中使用limit返回的数据限制是总和的,不是每条关联数据下,不知道有没有说明白…