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

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

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

Сообщение 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' => 'Цена'
                        ],
эффекта не дает. Может кто подскажет как можно сделать так, чтобы можно было сортировать таким образом по связанным данным?
Ответить