Работа с запросами в 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 )
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментариев нет: