Сортировка по кастомным полям

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

Сортировка по кастомным полям

Сообщение Brainfuck »

Есть например вот такой грид:

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

<?php 

echo GridView::widget([
    'dataProvider' => new ActiveDataProvider([
        'query' => $query,
        'sort' => [
            'attributes' => ['name', 'science', 'created_at', 'updated_at'],
            'defaultOrder' => ['updated_at' => SORT_DESC]
        ],
    ]),
    'columns' => [
		'name',
		[
			'attribute' => 'science',
			'value' => 'science.name',
		],
		[
			'header' => 'Всего работ',
			'value' => function(Section $model) {
				return count($model->articles);
			}
		],
	],
])
В нем есть два столбца по которым я не знаю как сделать сортировку. Я имею ввиду не в изначальном запросе сортировку, а когда юзер кликает сверху по заголовку столбца и данные сортируются. Так вот в первом случае у меня есть relation который из связанной модели отображает данные, во втором случае данные возвращает функция. Как мне быть в этом случае?
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Сортировка по кастомным полям

Сообщение andku83 »

godem
Сообщения: 5
Зарегистрирован: 2014.04.08, 10:43

Re: Сортировка по кастомным полям

Сообщение godem »

Еще можно юзать расширения картика, там практически все что нужно уже реализовано в лучшем виде!
Вот например http://demos.krajee.com/grid-demo такое можно установить себе.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Сортировка по кастомным полям

Сообщение andku83 »

Без составления правильного query и настройки dataProvider картик ничем не поможет.
Brainfuck
Сообщения: 313
Зарегистрирован: 2018.02.19, 14:20

Re: Сортировка по кастомным полям

Сообщение Brainfuck »

andku83 писал(а): 2018.12.10, 22:22 one
one+two
Ну про SearchModel я знаю, просто надеялся что без этого можно обойтись
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Сортировка по кастомным полям

Сообщение andku83 »

Brainfuck писал(а): 2018.12.11, 09:17 Ну про SearchModel я знаю, просто надеялся что без этого можно обойтись
Можно и обойтись, все что делается в SearchModel вы можете сделать прямо в вью (добавьте в вашем $query JOIN и агрегацию для подсчета кастомных полей), только вопрос - стоит ли это таких "красивых" костылей?
Ответить