public function getNodes(){
return $this->hasMany(PostNodes::className(), ['post_id'=>'id']);
}
search:
$query = Post::find();
$query->joinWith('nodes');
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'defaultPageSize' => 20,
],
'sort' => [
'defaultOrder' => [
'id' => SORT_DESC,
]
],
]);
使用hasMany关联查询后,记录总数是子表(PostNodes)的,导致分页不正确。现在已知使用groupBy对id进行分组可以解决这个问题,但是group在数据量大了以后查询太慢了。求个比较好的解决办法。
不知道你的需求是什么?
我猜测你需要使用 with()
而不是 joinWith()
,至于两个的区别你可以看这篇文章 Yii2 with 和 joinWith 的区别