Страница 1 из 1

Сортировка и DataProvider

Добавлено: 2016.04.25, 18:40
makbeth
Доброго дня! Суть проблемы: есть фильтрация (модель, которая возвращает dataProvider), есть вывод элементов через ListView, есть сортировка по возрастанию/убыванию в виде ссылок. Реализована так:

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

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

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

  'attributes' => [
table2.rub'=> [
                            'label' => 'Цена'
                        ],
эффекта не дает. Может кто подскажет как можно сделать так, чтобы можно было сортировать таким образом по связанным данным?