Несколько GridView на странице

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Несколько GridView на странице

Сообщение chungachguk »

Ни у кого не было проблем с размещением 2-х GridView на одной странице?
Суть в следующем. У меня есть одна модель, у не есть связь, где по условию через ActiveQuery делается выборка из одной таблицы 2-х наборов данных. Для одного DataProvider одно условие, для другого - другое условие. Эти 2 DataProvider'а используются в 2-х GridView на странице.
Так вот, настройкам провайдеров для сортировки и пагинации выставлены разные параметры (sortParam, pageParam). Но тем не менее, когда щелкаю сортировать или изменить страницу, то изменяются оба GridView, Хотя в адресной строке видны разные параметры для сортировки и пагинации.
Профайлер запросов БД показывает, что в запросах для первого и второго провайдера отсутствует разбиение на страницы. Если какой-либо GridView закомментировать, то оставшийся работает как надо. Да, и используемая БД MsSQL.
Подскажите куда копать?
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Несколько GridView на странице

Сообщение futbolim »

Попробуйте установить свой id для GridView
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Несколько GridView на странице

Сообщение chungachguk »

futbolim писал(а):Попробуйте установить свой id для GridView
это не помогает
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Несколько GridView на странице

Сообщение futbolim »

Проблема в id-шниках. 99%
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Несколько GridView на странице

Сообщение chungachguk »

futbolim писал(а):Проблема в id-шниках. 99%
Проблемы в id-шниках нет. 100% Сменил на ArrayDataProvider и всё работает как надо.
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Несколько GridView на странице

Сообщение Onotole »

При чем тут датапровайдер? В одном проекте у меня 4 грида на странице, и все работают
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Несколько GridView на странице

Сообщение chungachguk »

Onotole писал(а):При чем тут датапровайдер? В одном проекте у меня 4 грида на странице, и все работают
Хорошо, не датапровайдер. Тогда что может быть ещё?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Несколько GridView на странице

Сообщение zelenin »

5 минут на продебажить все до sortParam и pageParam для проверки почему они не работают и что вы не учли. xdebug уже настройте себе.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Несколько GridView на странице

Сообщение ElisDN »

У них объект $query точно не одинаковый?
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Несколько GridView на странице

Сообщение chungachguk »

ElisDN писал(а):У них объект $query точно не одинаковый?
query для каждого GridView вычисляет один и тот же класс, что типа такого

Код: Выделить всё

class SomeAR extends ActiveRecord {
public function getItems() {return $this->hasMany(AnotherAr::classname(), ['id'=>'ar_id']);}
}

class SomeQuery extends ActiveQuery {
public function type1() {return $this->andWhere('type=1]);}
public function type2() {return $this->andWhere('type=2]);}
...
}
 
соответственно провайдеры формируются таким образом

Код: Выделить всё

$dp1 = new ActiveDataProvider([
    'query' => $someAr->getItems()->type1()
]);
$dp2 = new ActiveDataProvider([
    'query' => $someAr->getItems()->type2()
]);
 
Ответить