Добавить поле поиска в GridView

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

Добавить поле поиска в GridView

Сообщение Xfirab »

Всем привет.
Такая задача, может ответ простой, но я пока не могу найти.
В БД есть три таблицы, свзянанные внешними ключами.

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

-- `country`
   `id`
   `name`

-- `region`
   `id`
   `name`
   `country_id`

-- `city`
   `id`
   `name`
   `region_id`
   
Все связи настроены.
На странице city/index вывод данных вот так:

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

<?= GridView::widget([
//...
'columns' => [
        'region.country.name',
        'region.name',
        'name',
     ],
]) ?>
Для полей region.name и name есть поле поиска, но как добавить поле поиска для region.country.name ?
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Добавить поле поиска в GridView

Сообщение vitalik1183 »

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

[
                'attribute' => 'url',
                'format' => 'url',
                'filter' => Select2::widget([
                    'attribute' => 'url',
                    'data' => Blogs::getDomainsItems(),
                    'options' => ['placeholder' => 'Выберите...'],
                    'model' => $searchModel,
                    'pluginOptions' => [
                        'allowClear' => true
                    ],
                ]),
            ],
Yii2!
Xfirab
Сообщения: 4
Зарегистрирован: 2017.03.10, 08:20

Re: Добавить поле поиска в GridView

Сообщение Xfirab »

vitalik1183 писал(а): 2017.03.10, 09:24

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

[
                'attribute' => 'url',
                'format' => 'url',
                'filter' => Select2::widget([
                    'attribute' => 'url',
                    'data' => Blogs::getDomainsItems(),
                    'options' => ['placeholder' => 'Выберите...'],
                    'model' => $searchModel,
                    'pluginOptions' => [
                        'allowClear' => true
                    ],
                ]),
            ],
Это во внутрь виджета gridview ?
И для чего Blogs::getDomainsItems()
Xfirab
Сообщения: 4
Зарегистрирован: 2017.03.10, 08:20

Re: Добавить поле поиска в GridView

Сообщение Xfirab »

Можно ли стандартными средствами Yii2
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Добавить поле поиска в GridView

Сообщение vitalik1183 »

Просто привел пример с Blogs::getDomainsItems()
Можно ли стандартными средствами Yii2
это итак стандартными
Yii2!
Xfirab
Сообщения: 4
Зарегистрирован: 2017.03.10, 08:20

Re: Добавить поле поиска в GridView

Сообщение Xfirab »

А ведь Select2::widget не сторонний виджет
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Добавить поле поиска в GridView

Сообщение Onotole »

Xfirab писал(а): 2017.03.10, 10:40 А ведь Select2::widget не сторонний виджет
Вам дали пример. Реализуйте, как вам удобно
Matvik
Сообщения: 194
Зарегистрирован: 2013.06.21, 02:32

Re: Добавить поле поиска в GridView

Сообщение Matvik »

Я сначала тоже не понимал до конца. Тут штука в том, что есть $searchmodel, которая используется для поиска, и в нее нужно передать данные, а через какой виджет, и. д. - это совершенно побоку. То есть, никто не запрещает поставить фильтр в другую колонку, например (но нету резона такое делать)
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Добавить поле поиска в GridView

Сообщение ElisDN »

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

'columns' => [
    [
        'attribute' => 'country_name',
        'value' => 'region.country.name',
    ],
    [
        'attribute' => 'region_name',
        'value' => 'region.name',
    ],
    'name',
]
В searchModel добавить:

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

public $country_name;
public $region_name;
и прописать их в rules() и andFilterWhere.
Ответить