Добрый день. Без связки 2-х таблиц пагинация работает отлично, но с hasMany не работает.
Controller:$users = User::find()->with('posts')->where(['email' => $_SESSION['auth']]);
$countQuery = clone $users;
$pages = new Pagination(['totalCount' => $countQuery->count(), 'defaultPageSize' => 3]);
$models = $users->offset($pages->offset)
->limit($pages->limit)
->all();
$this->view->title = "Личный кабинет";
return $this->render('index', compact('postForm', 'models', 'pages'));
View:<div id="posts" class="panel-body">
<?php foreach ($models as $user): ?>
<?php $posts = $user->posts ?>
<?php foreach ($posts as $post): ?>
<h2><?= $post->title ?></h2>
<p><?= $post->text ?></p>
<?php endforeach; ?>
<?php endforeach; ?>
<?php echo LinkPager::widget([
'pagination' => $pages,
'registerLinkTags' => true
]); ?>
</div>
В результате при запуске происходит вывод всех постов у текущего пользователя, но увы не происходит Лимита (3) - как указано в контроллере , а также нет отображения виджета пагинаци в виде. Ошибок не возникает...
Пытаюсь применить GridView, но не понимаю как вывести связь с таблицей posts
Controller:$dataProvider = new ActiveDataProvider(['query' => User::find()->asArray()->where(['email' => $_SESSION['auth']])->with('posts'),]);
$this->view->title = "Личный кабинет";
return $this->render('index', compact('postForm', 'users', 'dataProvider'));
View:<div id="posts" class="panel-body">
<?= GridView::widget([
'dataProvider' => $dataProvider,
]); ?>
</div>