Нагадаю, в одній з попередніх статей ми побіжно торкнулися класу Active Record. Для швидкого знайомства ми створили контролер PostController і модель Category. Також у нас є таблиця category в БД. За замовчуванням модель працює, як ви пам'ятаєте, з однойменної таблицею. Виглядає наша модель дуже просто:
Для того, щоб дістати колекцію записів з таблиці category, ми використовували всього пару рядків коду:
У цих рядках ми якраз і використовуємо можливості класу Active Record. У загальному випадку для роботи з зазначеним класом необхідно:
отримати об'єкт моделі і створити об'єкт запиту, викликавши метод find;
Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком
Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2
при необхідності налаштувати об'єкт запиту, звертаючись до методів побудови запиту (where, limit, orderBy і т.д.);
викликати необхідний метод отримання даних, найчастіше це будуть all, one або count.
У коді вище ми фактично пропустили етап настройки запиту і в результаті запит вийшов примітивним, виду SELECT * FROM category. Давайте тепер спробуємо зовсім небагато ускладнити його, звернувшись до кількох методів настройки запитів.
Як параметр методу when ми передали строкове вираження. Однак, даний метод розуміє також і формат масиву. Наприклад, той же результат ми отримаємо і з таким записом:
Також ми можемо передати масив операторів. Давайте для прикладу виконаємо пошук, використовуючи оператор LIKE в запиті.
Даний варіант запису сформує запит виду SELECT * FROM category WHERE name LIKE '% s%'. В результаті ми отримаємо щось подібне:
Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком
Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2
Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі