ActiveDataProvider

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

ActiveDataProvider

Сообщение AndreyKolomoets »

Есть запрос, который возвращает данные, например:
id юл. лица, юр.лицо, заказ
1 ИП Иванов 21
1 ИП Иванов 22
2 ИП Петров 33

Если передаю запрос в ActiveDataProvider, а потом вывожу все в GridView отображаются только 2 записи:

id юл. лица, юр.лицо, заказ
1 ИП Иванов 22
2 ИП Петров 33

ActiveDataProvider фильтрует псевдо-одинаковые строки.
Как это запретить? мне нужны все строки.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: ActiveDataProvider

Сообщение unknownby »

Каким образом у вас id повторяется? Если id должен быть уникальным.
AndreyKolomoets
Сообщения: 11
Зарегистрирован: 2020.09.17, 08:50

Re: ActiveDataProvider

Сообщение AndreyKolomoets »

id также дублируется, как и остальные данные в строках.
Может знаете как решить данную проблему?
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: ActiveDataProvider

Сообщение unknownby »

AndreyKolomoets писал(а): 2020.10.14, 13:41 id также дублируется, как и остальные данные в строках.
Может знаете как решить данную проблему?
Решить вопрос дублирования id ?
Или вопрос "как указать первичный ключ для столбца и сделать автоинкрементируемым его"?
Чтобы при создании записи создавался новый уникальный идентификатор записи.
Или это может id организации, а уникальный идентификатор таблицы не показан в примере?
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: ActiveDataProvider

Сообщение unknownby »

AndreyKolomoets писал(а): 2020.10.14, 10:14 Есть запрос, который возвращает данные, например:
id юл. лица, юр.лицо, заказ
1 ИП Иванов 21
1 ИП Иванов 22
2 ИП Петров 33

Если передаю запрос в ActiveDataProvider, а потом вывожу все в GridView отображаются только 2 записи:

id юл. лица, юр.лицо, заказ
1 ИП Иванов 22
2 ИП Петров 33

ActiveDataProvider фильтрует псевдо-одинаковые строки.
Как это запретить? мне нужны все строки.
Как вариант, если таблицы правильно написаны, то в запросе стоит группировка по юр. лицу. Поэтому может выдавать 2 строки
Tommi
Сообщения: 90
Зарегистрирован: 2013.08.01, 13:44

Re: ActiveDataProvider

Сообщение Tommi »

Посмотрите в доках к провайдеру данных, раздел "принципы работы с ключами данных"
AndreyKolomoets
Сообщения: 11
Зарегистрирован: 2020.09.17, 08:50

Re: ActiveDataProvider

Сообщение AndreyKolomoets »

Решение следующее - Вычесляемый ключ (как по инструкции).

$dataProvider = new ActiveDataProvider([
'query' => $query,
'key' => function ($model) {
return md5($model->order);
},
'pagination' => [
'pageSize' => 50
],
]);

Но обязательно, нужно в запросе убрать из выборки поле id .
Тогда работает.
Ответить