У меня проблемы с разбиением на страницы, когда в GridView есть 2 модели, и в одной строке добавлено более 1 записи из второй модели.Pagination in GridView подсчитывает все записи при наличии нескольких моделей, но количество строк ожидается в Yii2
DataProvider выглядит следующим образом:
$query = Risks::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => array('pageSize' => 5),
]);
$query->joinWith(['solutions']);
Ins вторая модель у меня есть функция:
public function getSolutionValues(){
......
$content ='';
foreach ($order as $o){
$model = Solutions::findOne($o);
$content.= '<p>'.Html::encode($model->solution).'</p>';
}
return $content;
}
И в GridView Я называю эту функцию:
[
'attribute' => 'solutions',
'format' => 'raw',
'value' => function ($model) {
return $model->getSolutionValues();
},
],
Например здесь видны только первые 3 записи (вместо 5), потому что первая строка вставляется в 3 записи из разных моделей. (Если один раствор вставлен, то everithing является Ok)
И если я удалю одно решение из списка, вёрстка не меняется, я должен удалить раствор из БД, а затем только нумерация страниц не учитывается, что запись ,
Разбивка не зависит от отображаемого контента внутри строк. Скорее всего, что-то не так с вашим запросом. Покажите, как он сформировался. Также я рекомендую использовать отношения для таких целей http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#working-with-relational-data. – arogachev
На самом деле весь запрос - '$ query = Риски :: find(); $ query-> joinWith (['solutions']); 'Только после' $ this-> load ($ params); 'в поисковой модели больше, но, как я понимаю, это только для поиска. И вы имеете в виду отношения для разбивки на страницы? –
Если с использованием отношений было предназначено для получения списка решений, то у меня есть специальный порядок, я не могу запросить все сверху вниз –