Можно ли передать сортировку в select?

Всем привет!
Есть пара вопросов по сортировке:
1) Есть сортировка:
Use yii\data\Sort;
$sort = new Sort([
            'attributes' => [
                'views' => [
                    'label' => 'По популярности',
                ],
                'group1' => [
                    'label' => 'По цене',
                ]
            ],
        ]);

Во view передается так:
echo $sort->link('group1') . ' | ' . $sort->link('views');

Собственно, это то, что в доках описано.
Мне бы хотелось передать этот sort в select следующим образом:
<select>
	<option value="">По цене(по убыванию)</option>
	<option value="">По цене(по возрастанию)</option>
	<option value="">По популярности(по убыванию)</option>
	<option value="">По популярности(по возрастанию)</option>
</select>

Как это можно сделать?

2) Чтобы сортировка работала - необходимо в мой Product::find() передать orderBy($sort->orders), но т.к в магазине не у всех товаров есть изображения, у меня дефолтная сортировка стоит следующая: orderBy(['image' => SORT_DESC]). Но если ее оставить - сортировка не работает, можно ли эту проблему решить?
Спасибо.
  • Вопрос задан
  • 151 просмотр
Решения вопроса 2
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Возможно Вам поможет addOrderBy()
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Пишите js, что бы выбор в селекте обновлял страницу. Ссылку можно хранить в data аттрибутах или даже прямо в value. Получить ссылку для этого можно так:
<option value="<?=$sort->createUrl('attribute')?>">attribute</option>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы