Spec-Zone.ru › Yii 2.0

Trait yii\db\ActiveRelationTrait

Все классы | Свойства | Методы
Реализуется 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/ActiveRelationTrait.php

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

Открытые свойства

Свойство Тип Описание Определено
$inverseOf string Имя отношения, являющегося обратным данному отношению. yii\db\ActiveRelationTrait
$link массив Столбцы первичной и внешней таблиц, устанавливающие отношение. yii\db\ActiveRelationTrait
$multiple boolean Определяет, представляет ли этот запрос отношение к нескольким записям. yii\db\ActiveRelationTrait
$primaryModel yii\db\ActiveRecord Основная модель запроса с отношением. yii\db\ActiveRelationTrait
$via массив|объект Запрос, связанный со вспомогательной таблицей. yii\db\ActiveRelationTrait

Открытые методы

Метод Описание Определено
__clone() Клонирует внутренние объекты. yii\db\ActiveRelationTrait
findFor() Ищет связанные записи для указанной основной записи. yii\db\ActiveRelationTrait
inverseOf() Устанавливает имя отношения, являющегося обратным данному отношению. yii\db\ActiveRelationTrait
populateRelation() Ищет связанные записи и заполняет их в основные модели. yii\db\ActiveRelationTrait
via() Определяет отношение, связанное со вспомогательной таблицей. yii\db\ActiveRelationTrait

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

$inverseOf открытое свойство

Имя отношения, являющегося обратным данному отношению. Например, у заказа есть клиент, что означает, что обратное отношение к "клиенту" — это "заказы", а обратное отношение к "заказам" — это "клиент". Если это свойство установлено, первичная(ые) запись(и) будут ссылаться через указанное отношение. Например, $customer->orders[0]->customer и $customer будут одним объектом, и доступ к клиенту заказа не вызовет новый запрос к БД. Это свойство используется только в контексте отношений.

См. также inverseOf().

public string $inverseOf = null

$link открытое свойство

Столбцы первичной и внешней таблиц, устанавливающие отношение. Ключи массива должны быть столбцами таблицы для этого отношения, а значения массива — соответствующими столбцами из первичной таблицы. Не нужно добавлять префиксы или кавычки к именам столбцов, так как это будет сделано автоматически Yii. Это свойство используется только в контексте отношений.

public array $link = null

$multiple открытое свойство

Указывает, представляет ли этот запрос отношение к нескольким записям. Это свойство используется только в контексте отношений. Если true, это отношение заполнит все результаты запроса в экземпляры AR, используя all(). Если false, будет извлечена только первая строка результатов, используя one().

public boolean $multiple = null

$primaryModel открытое свойство

Основная модель запроса с отношением. Используется только при ленивой загрузке с динамическими параметрами запроса.

public yii\db\ActiveRecord $primaryModel = null

$via открытое свойство

Запрос, связанный со вспомогательной таблицей. Пожалуйста, используйте via() для установки этого свойства, а не непосредственного его задания. Это свойство используется только в контексте отношений.

См. также via().

public array|object $via = null

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

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

Клонирует внутренние объекты.

public void __clone ( )

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

Находит связанные записи для указанной основной записи.

Этот метод вызывается при доступе к связи ActiveRecord в ленивом режиме.

public mixed findFor ( $name, $model )
$name строка

Имя связи

$model yii\db\ActiveRecordInterface|yii\db\BaseActiveRecord

Основная модель

return mixed

Связанная запись(и)

throws yii\base\InvalidParamException

если связь неверна

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

Устанавливает имя связи, являющейся обратной данной связи.

Например, у заказа есть покупатель, что означает, что обратной связью к "покупателю" является "заказы", а обратной связью к "заказам" является "покупатель". Если этот атрибут задан, основная запись(и) будет(будут) ссылаться через указанную связь. Например, $customer->orders[0]->customer и $customer будут одним и тем же объектом, а доступ к покупателю заказа не будет вызывать новый запрос к БД.

Используйте этот метод при объявлении связи в классе yii\db\ActiveRecord:

public function getOrders()
{
    return $this->hasMany(Order::className(), ['customer_id' => 'id'])->inverseOf('customer');
}
public $this inverseOf ( $relationName )
$relationName строка

Имя связи, обратной данной связи.

return $this

Объект самой связи.

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

Находит связанные записи и заполняет ими основные модели.

public массив populateRelation ( $name, &$primaryModels )
$name строка

Имя связи

$primaryModels массив

Основные модели

return массив

Связанные модели

throws yii\base\InvalidConfigException

если $link неверна

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

Определяет связь, связанную со справочной таблицей.

Используйте этот метод для указания записи/таблицы перекрёстной связи при объявлении связи в классе yii\db\ActiveRecord:

class Order extends ActiveRecord
{
   public function getOrderItems() {
       return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
   }

   public function getItems() {
       return $this->hasMany(Item::className(), ['id' => 'item_id'])
                   ->via('orderItems');
   }
}
public $this via ( $relationName, обратный вызов $callable = null )
$relationName строка

Имя связи. Это относится к связи, объявленной в $primaryModel.

$callable обратный вызов

PHP-обратный вызов для настройки связи, связанной со справочной таблицей. Его сигнатура должна быть function($query), где $query — запрос, который необходимо настроить.

return $this

Объект самой связи.

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

Spec-Zone.ru

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