Yii2 Active Record. Частина 3

282

Від автора: вітаю вас, друзі. Ми продовжуємо цикл статей, присвячених знайомству з фреймворком Yii2. У цій та наступних статтях ми трохи більше уваги приділимо класу Yii2 Active Record, який пропонує об’єктний інтерфейс для даних БД. Ми познайомимося з найбільш популярним набором методів класу, як то: where, update, save, count, delete і т. п.

Отже, в попередній статті ми з вами розібрали роботу з методом select, який дозволить вибрати тільки потрібні вам поля, а також з методами andWhere і orWhere, завдяки яким ми можемо уточнити фільтр вибірки, додаючи в запит оператори AND та OR. У цій статті ми познайомимося ще з кількома методами конструктора запитів.

Почнемо з методу orderBy. Думаю, ви вже здогадалися про те, що цей метод дозволяє упорядкувати вибірку, сортуючи її за вказаними полями. Наприклад, давайте впорядкуємо обрані нами категорії за назвою:

$cats = Category::find()->select([‘id’, ‘name’])->where([‘like’, ‘name’, ‘s’])->andWhere(‘idorderBy(‘name ASC’)->all();

Цей код перетворюється в наступний запит:

SELECT `id`, `name` FROM `category` WHERE (`name` LIKE ‘%s%’) AND (id<4) ORDER BY `name`

Наступна пара корисних методів: limit і offset. Ці методи завжди беруть участь у посторінкової навігації і вони відповідають за отримання певної частини даних. Метод limit вказує на число записів, що необхідно запитати, а метод offset дозволяє вказати число, з якого необхідно почати вибірку.

Давайте спробуємо вибрати перші три запису (нижче необхідний код і SQL-запит, який буде виконаний):

$cats = Category::find()->select([‘id’, ‘name’])->limit(3)->all();
SELECT `id`, `name` FROM `category` LIMIT 3;

Yii2 Active Record. Частина 3

В результаті ми отримали перші три записи таблиці. Тепер спробуємо додати відступ (offset), зсунувши початок вибірки на одну запис:

$cats = Category::find()->select([‘id’, ‘name’])->limit(3)->offset(1)->all();
SELECT `id`, `name` FROM `category` LIMIT 3 OFFSET 1

Тепер ми отримали дещо інший результат:

Yii2 Active Record. Частина 3

Як бачимо, нічого складного. У наступній статті ми продовжимо роботу з методами отримання даних. Більше про фреймворку ви можете дізнатися з наших безкоштовних або платних уроків. Також створення найпростішого блогу на Yii2 можна подивитися в цьому циклі уроків.