От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой и следующих статьях мы немного больше внимания уделим классу Yii2 Active Record, который предлагает объектный интерфейс для данных БД. Мы познакомимся с наиболее популярным набором методов класса, как то: where, update, save, count, delete и т.п.
Итак, в прошлой статье мы с вами разобрали работу с методом select, который позволит выбрать только нужные вам поля, а также с методами andWhere и orWhere, благодаря которым мы можем уточнить фильтр выборки, добавляя в запрос операторы AND и OR. В этой статье мы познакомимся еще с несколькими методами конструктора запросов.
Начнем с метода orderBy. Думаю, вы уже догадались о том, что этот метод позволяет упорядочить выборку, сортируя ее по указанным полям. Например, давайте упорядочим выбираемые нами категории по названию:
1 |
$cats = Category::find()->select(['id', 'name'])->where(['like', 'name', 's'])->andWhere('id<4')->orderBy('name ASC')->all(); |
Этот код преобразуется в следующий запрос:
1 |
SELECT `id`, `name` FROM `category` WHERE (`name` LIKE '%s%') AND (id<4) ORDER BY `name` |
Следующая пара полезных методов: limit и offset. Эти методы всегда принимают участие в постраничной навигации и отвечают они за получение определенной части данных. Метод limit указывает на число записей, которое необходимо запросить, а метод offset позволяет указать число, с которого необходимо начать выборку.
Давайте попробуем выбрать первые три записи (ниже необходимый код и SQL-запрос, который будет выполнен):
1 2 |
$cats = Category::find()->select(['id', 'name'])->limit(3)->all(); SELECT `id`, `name` FROM `category` LIMIT 3; |
В результате мы получили первые три записи таблицы. Теперь попробуем добавить отступ (offset), сдвинув начало выборки на одну запись:
1 2 |
$cats = Category::find()->select(['id', 'name'])->limit(3)->offset(1)->all(); SELECT `id`, `name` FROM `category` LIMIT 3 OFFSET 1 |
Теперь мы получили немного другой результат:
Как видим, ничего сложного. В следующей статье мы продолжим работу с методами получения данных. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.