Yii2 active record

Нагадаю, в одній з попередніх статей ми побіжно торкнулися класу Active Record. Для швидкого знайомства ми створили контролер PostController і модель Category. Також у нас є таблиця category в БД. За замовчуванням модель працює, як ви пам'ятаєте, з однойменної таблицею. Виглядає наша модель дуже просто:

Для того, щоб дістати колекцію записів з таблиці category, ми використовували всього пару рядків коду:

У цих рядках ми якраз і використовуємо можливості класу Active Record. У загальному випадку для роботи з зазначеним класом необхідно:

отримати об'єкт моделі і створити об'єкт запиту, викликавши метод find;

Yii2 active record

Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком

Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2

при необхідності налаштувати об'єкт запиту, звертаючись до методів побудови запиту (where, limit, orderBy і т.д.);

викликати необхідний метод отримання даних, найчастіше це будуть all, one або count.

У коді вище ми фактично пропустили етап настройки запиту і в результаті запит вийшов примітивним, виду SELECT * FROM category. Давайте тепер спробуємо зовсім небагато ускладнити його, звернувшись до кількох методів настройки запитів.

Yii2 active record

Як параметр методу when ми передали строкове вираження. Однак, даний метод розуміє також і формат масиву. Наприклад, той же результат ми отримаємо і з таким записом:

Також ми можемо передати масив операторів. Давайте для прикладу виконаємо пошук, використовуючи оператор LIKE в запиті.

Даний варіант запису сформує запит виду SELECT * FROM category WHERE name LIKE '% s%'. В результаті ми отримаємо щось подібне:

Yii2 active record

Yii2 active record

Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком

Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2

Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі

Схожі статті