Сортировка и DataProvider
Добавлено: 2016.04.25, 18:40
Доброго дня! Суть проблемы: есть фильтрация (модель, которая возвращает dataProvider), есть вывод элементов через ListView, есть сортировка по возрастанию/убыванию в виде ссылок. Реализована так:
Переопределен базовый класс т.к. не устраивает родное отображение в виде списка.
Параметр price, это цена товара, по которой и должна идти сортировка. Все бы ничего, если бы у пользователя была возможность задавать цену только в одной валюте... Для того, чтобы хранить цены в разных валютах я создал отдельную таблицу, в которой я храню цены в четырех валютах по официальному курсу, а пересчитываю по крону ночью. Что-то я отдалился от сути: для корректной сортировки мне не подходит поле price в основной таблице т.к. там может быть и 1000 рублей, так и 1000 долларов, что коренным образом все меняет. Посему хотелось бы сортировать по второй таблице и по одной валюте. Вопрос вот в чем как и где это можно реализовать? Потому как эффекта не дает. Может кто подскажет как можно сделать так, чтобы можно было сортировать таким образом по связанным данным?
Код: Выделить всё
\app\modules\main\models\CustomLinkSorter::widget([
'sort' => new \yii\data\Sort([
'attributes' => [
'price'=> [
'label' => 'Цена'
],
]
]),
'options' => []
]);
Параметр price, это цена товара, по которой и должна идти сортировка. Все бы ничего, если бы у пользователя была возможность задавать цену только в одной валюте... Для того, чтобы хранить цены в разных валютах я создал отдельную таблицу, в которой я храню цены в четырех валютах по официальному курсу, а пересчитываю по крону ночью. Что-то я отдалился от сути: для корректной сортировки мне не подходит поле price в основной таблице т.к. там может быть и 1000 рублей, так и 1000 долларов, что коренным образом все меняет. Посему хотелось бы сортировать по второй таблице и по одной валюте. Вопрос вот в чем как и где это можно реализовать? Потому как
Код: Выделить всё
'attributes' => [
table2.rub'=> [
'label' => 'Цена'
],