e236286
@e236286

Как в yii2 лучше сделать такую сортировку?

Как лучше сделать такую сортировку?

<form class="form-inline order-by">
<div class="form-group">
<label>Sort by:</label>
</div>
<div class="form-group">
<select class="form-control">
<option selected="selected">Default</option>
<option>Popularity</option>
<option>Average rating</option>
<option>Newness</option>
<option>Price: low to high</option>
<option>Price: high to low</option>
</select>
</div>
</form>


У меня как идея появилась:
<option value="http://localhost/mysite/frontend/web/index.php/catalog/index?sort=-view_count">
Popularity
</option>

но это очень унылая идея...
  • Вопрос задан
  • 267 просмотров
Решения вопроса 1
kimono
@kimono
Web developer
Общий принцип:
<form action="">
    <select name="order_by">
        <option value=""></option>
        <option value="view_count">По популярности</option>
    </select>
</form>

class NewsSearch extends Model {
        public $order_by;
        public function rules(){
            return [
                ['order_by', 'in', 'range' => ['view_count', 'created_at']],
            ];
        }
        public function search(){
            // ...
            $query->orderBy([$this->order_by => SORT_ASC]);
            // ...
        }
    }

Далее доработайте наличие знака минус "-" для обратной сортировки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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