Yii2 Active Record. Часть 2

Yii2 Active Record

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

Итак, мы продолжаем знакомиться с классом ActiveRecord и различными возможностями получения данных. В предыдущей статье мы добавили настройку запроса, использовав метод where. Передавая различные параметры в данный метод, вы можете получить нужные вам данные по условию. Фактически данный метод является аналогом оператора WHERE в языке SQL.

Однако, не смотря на добавленное условие, мы все равно можем получать излишек данных, поскольку Yii генерирует запрос вида SELECT *, а это не всегда хорошо. Например, у нас может быть большая таблица с десятками полей. Из всей этой таблицы нам всего-то нужно получить несколько нужных полей. Фреймворк же по умолчанию запросит все поля. Как указать, что мы хотим получить вполне конкретный набор полей?

Думаю, вы уже догадались — нам поможет метод select, который может принимать как строковый параметр, так и массив. В обоих случаях достаточно через запятую перечислить имена полей, который необходимы. Например, выберем поля id и name:

Оба варианта записи вернут один и тот же результат, а фреймворк в этот раз будет генерировать запрос вида:

Хорошо, теперь давайте еще немного поэкспериментируем с условиями. На практике нам часто необходимо добавить в запрос несколько различных условий. При этом в различных ситуациях мы хотим чтобы выполнялось каждое из условий или хотя бы одно из перечисленных условий. В SQL это будут запросы вида:

Как реализовать такие запросы в Yii? Для этого можно использовать методы andWhere и orWhere. Давайте попробуем:

В результате мы получим следующий запрос:

Аналогичным образом вы можете использовать метод orWhere, в этом случает будет добавлено альтернативное условие с помощью оператора OR. В следующей статье мы продолжим знакомство с методами конструктора запросов.

Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Метки:

Похожие статьи:

Комментарии Вконтакте: