Spec-Zone.ru › Yii 2.0

Особенность yii\db\ActiveQueryTrait

Все классы | Свойства | Методы
Реализовано в yii\db\ActiveQuery, yii\elasticsearch\ActiveQuery, yii\mongodb\ActiveQuery, yii\mongodb\file\ActiveQuery, yii\redis\ActiveQuery, yii\sphinx\ActiveQuery
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/db/ActiveQueryTrait.php

ActiveQueryTrait реализует общие методы и свойства для классов запросов активных записей.

Публичные свойства

Свойство Тип Описание Определено в
$asArray boolean Возвращать ли каждую запись в виде массива. yii\db\ActiveQueryTrait
$modelClass string Имя класса ActiveRecord. yii\db\ActiveQueryTrait
$with array Список отношений, с которыми должен выполняться этот запрос. yii\db\ActiveQueryTrait

Публичные методы

Метод Описание Определено в
asArray() Устанавливает свойство asArray(). yii\db\ActiveQueryTrait
findWith() Ищет записи, соответствующие одному или нескольким отношениям, и заполняет ими основные модели. yii\db\ActiveQueryTrait
with() Указывает отношения, с которыми должен выполняться этот запрос. yii\db\ActiveQueryTrait

Защищенные методы

Метод Описание Определено в
createModels() Преобразует найденные строки в экземпляры моделей. yii\db\ActiveQueryTrait

Подробное описание свойств

$asArray публичное свойство

Возвращать ли каждую запись в виде массива. Если false (по умолчанию), создается объект $modelClass для представления каждой записи.

public boolean $asArray = null

$modelClass публичное свойство

Имя класса ActiveRecord.

public string $modelClass = null

$with публичное свойство

Список отношений, с которыми должен выполняться этот запрос.

public array $with = null

Подробное описание методов

asArray() публичный метод

Устанавливает свойство asArray().

public $this asArray ( $value = true )
$value boolean

Возвращать ли результаты запроса в виде массивов вместо Active Records.

return $this

Сам объект запроса

createModels() защищенный метод (доступен с версии 2.0.11)

Преобразует найденные строки в экземпляры моделей

protected array|yii\db\ActiveRecord[] createModels ( $rows )
$rows array

findWith() публичный метод

Ищет записи, соответствующие одному или нескольким отношениям, и заполняет ими основные модели.

public void findWith ( $with, &$models )
$with array

Список отношений, с которыми должен выполняться этот запрос. Подробнее см. with().

$models array|yii\db\ActiveRecord[]

Основные модели (могут быть экземплярами AR или массивами)

with() публичный метод

Указывает отношения, с которыми должен выполняться этот запрос.

Параметры этого метода могут быть либо одной или несколькими строками, либо одним массивом имен отношений и необязательными обратными вызовами для настройки отношений.

Имя отношения может ссылаться на отношение, определенное в $modelClass, или на подотношение, представляющее отношение связанной записи. Например, orders.address означает отношение address , определенное в классе модели, соответствующем отношению orders.

Вот несколько примеров использования:

// find customers together with their orders and country
Customer::find()->with('orders', 'country')->all();
// find customers together with their orders and the orders' shipping address
Customer::find()->with('orders.address')->all();
// find customers together with their country and orders of status 1
Customer::find()->with([
    'orders' => function (\yii\db\ActiveQuery $query) {
        $query->andWhere('status = 1');
    },
    'country',
])->all();

Вы можете вызвать with() несколько раз. Каждый вызов добавит отношения к существующим. Например, следующие два оператора эквивалентны:

Customer::find()->with('orders', 'country')->all();
Customer::find()->with('orders')->with('country')->all();
public $this with ( )
return $this

Сам объект запроса

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-activequerytrait.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API