banner image

Работа с запросами в Yii 2.x. Запрос выборки при работе с моделью (Active Record) (часть 1)


В Yii 2.x используется 3 типа запросов к базе данных, это: объекты доступа к данным (DAO), построитель запросов (Query) и объектно-ориентированный интерфейс манипуляцией базы данных (Active Record).


Рассмотрим список функций которые позволяют осуществлять выборку данных, для этого рассмотрим простую таблицу Country (Страны). Таблица включает в себя поля номер (id), название страны (name), количество жителей (number) и площадь (area).



Рассмотрим основной список функций для выборки данных из таблицы Country. По правилам MVC вывод информации осуществляется в представлении, но для того чтобы не загромождать описание методов и проверить результат, выведем данные в контроллере.


find() осуществляет поиск записи из таблицы по ключевому полю. Выберем запись из таблицы страны и выведем название страны


Результатом выборки: Россия


one() выборка одной записи из таблицы


all() выборка всех записей таблицы. Выведем всю таблицу страны


Результат выборки: Все данные из таблицы Country


select() осуществляет выборку определенных колонок таблицы. Выведем все названия стран и площадь стран.


Результат выборки: Все страны и площади всех стран


Where(), orWhere(), andWhere


where() условие для выборки. Выведем страну у которой id=4


Выберем страну у которой id=1 и площадь составляет 17125407


Выберем страны у которой id=1 и площадь составляет 238391


Результат выборки: Россия и Румыния


Множественное условие


where() условие для выборки. Выведем страну у которой id=4 и количество жителей 81459000


Результат выборки: Германия


count() осуществляет подсчет количества записей. Подсчитаем количество строк в таблице Country


orderBy() осуществляет сортировку записей. Отсортируем страны по алфавитному порядку.


Результат выборки: Германия Россия Румыния США


asArray() осуществляет преобразование данных в массив. Переведем данные в массив и выведем страны


Результат выборки: Россия Румыния США Германия


indexBy() осуществляет индексацию по определенному столбцу. Сделаем индексацию по столбцу id


limit() определяет количество выбираемых записей.


limit() определяет c какой записи будет выборка. Выберем 2 страны начиная с третьей.


like устанавливает соответствие строки с шаблонами. Выберем страны в встречается буква м.


Результат выборки: Румыния Германия


in множественное условие выборки. Выберем страны id=1,id=2,id=3.


Результат выборки: Россия Румыния США


Выберем страны у которых номена id не равен 1, не равен 2, не равен 3


Результат выборки: Германия


between() выбираем значения между определенными значениями. Выберем страны у которых номер стоит между 1 и 3 (крайние значения 1 и 3 включаются в выборку).


groupBy() группирует значения если они одинаковые. Сгруппируем страны по полю name


Результат выборки: Россия Румыния США Германия


having() аналог оператора where(), только оператор having() работает с агрегатными функциями count(), min(), max(), avg(), sum()


addParams() добавляет параметр в условие. выберем страну у которой id=1


findBySql() выборка с помощью sql запроса. Выберем страны с численностью населения 146519759 и 322369319 человек


Результат выборки: Россия США


В этой статье мы рассмотрели список методов, которые осуществляют выборку данных при работе с моделью.


Комментарии ( 0 )


Вы должны авторизоваться, чтобы оставлять комментарии.

Reviewed by andrey on ноября 15, 2017 Rating: 5

Комментариев нет:

Технологии Blogger.