Сортировка в Yii 2
Сортировка в Yii 2

Сортировка

Иногда выводимые данные требуется отсортировать в соответствии с одним или несколькими атрибутами. Если вы используете провайдер данных с одним из виджетов данных, сортировка будет применена автоматически. В противном случае вы должны создать экземпляр [[yii\data\Sort]], настроить его и применить к запросу. Он также может быть передан в представление, где будет использован для создания ссылок на сортировку по определенным атрибутам.

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Ниже приведен типичный пример использование сортировки,

function actionIndex()
{
    $sort = new Sort([
        'attributes' => [
            'age',
            'name' => [
                'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
                'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
                'default' => SORT_DESC,
                'label' => 'Name',
            ],
        ],
    ]);

    $models = Article::find()
        ->where(['status' => 1])
        ->orderBy($sort->orders)
        ->all();

    return $this->render('index', [
         'models' => $models,
         'sort' => $sort,
    ]);
}

В представлении:

// Отображение ссылок на различные действия сортировок
echo $sort->link('name') . ' | ' . $sort->link('age');

foreach ($models as $model) {
    // здесь отображаем модель $model
}

В примере выше, мы объявляем два атрибута, которые поддерживают сортировку: name и age. Мы передаем информацию о сортировке в запрос статьи, поэтому результаты запроса будут отсортированы согласно сортировке, установленной в объекте Sort. В представлении, мы отображаем две ссылки, которые ведут на страницы с данными, отсортированными по соответствующим атрибутам.

Класс [[yii\data\Sort|Sort]] будет автоматически принимать параметры, переданные с запросом и в соответствии с ними настраивать параметры сортировки. Вы можете регулировать список принимаемых параметров через настройку свойства [[yii\data\Sort::$params|$params]].

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню