CActiveRelation
| Пакет | system.db.ar |
|---|---|
| Наследование | класс CActiveRelation » CBaseActiveRelation » CComponent |
| Подклассы | CBelongsToRelation, CHasManyRelation, CHasOneRelation |
| С момента | 1.0 |
| Исходный код | framework/db/ar/CActiveRecord.php |
Свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| alias | строка | псевдоним для таблицы, на которую ссылается эта связь. | CActiveRelation |
| className | строка | имя класса связанной активной записи | CBaseActiveRelation |
| condition | строка | запрос WHERE. | CBaseActiveRelation |
| foreignKey | смешанный | внешний ключ в этой связи | CBaseActiveRelation |
| group | строка | запрос GROUP BY. | CBaseActiveRelation |
| having | строка | запрос HAVING. | CBaseActiveRelation |
| join | строка | как соединять с другими таблицами. | CBaseActiveRelation |
| joinOptions | строка|массив | свойство для задания операций после JOIN, таких как USE INDEX. | CBaseActiveRelation |
| joinType | строка | тип соединения. | CActiveRelation |
| name | строка | имя связанного объекта | CBaseActiveRelation |
| on | строка | запрос ON. | CActiveRelation |
| order | строка | запрос ORDER BY. | CBaseActiveRelation |
| params | массив | параметры, которые должны быть привязаны к условию. | CBaseActiveRelation |
| scopes | смешанный | применяемые области видимости. Может быть установлено в одно из следующих значений:
| CActiveRelation |
| select | смешанный | список имён столбцов (массив или строка имён, разделённых запятыми) для выбора. | CBaseActiveRelation |
| through | строка | имя связи, которая должна использоваться как мост к этой связи. | CActiveRelation |
| together | булево | следует ли присоединить эту таблицу к основной таблице. | CActiveRelation |
| with | строка|массив | указывает, какие связанные объекты должны быть загружены при ленивой загрузке этого связанного объекта. | CActiveRelation |
Методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CBaseActiveRelation |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает прикреплённое поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые поведения компонента. | CComponent |
| enableBehavior() | Включает прикреплённое поведение. | CComponent |
| enableBehaviors() | Включает все прикреплённые поведения компонента. | CComponent |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте этого компонента. | CComponent |
| getEventHandlers() | Возвращает список прикреплённых обработчиков событий для события. | CComponent |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли прикреплённые обработчики для указанного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| mergeWith() | Объединяет эту связь с критериями, указанными динамически. | CActiveRelation |
| raiseEvent() | Вызывает событие. | CComponent |
Подробности свойств
alias свойство
public string $alias;
псевдоним для таблицы, на которую ссылается эта связь. По умолчанию null, что означает, что псевдоним будет таким же, как имя связи.
joinType свойство
public string $joinType;
тип соединения. По умолчанию 'LEFT OUTER JOIN'.
on свойство
public string $on;
запрос ON. Условие, указанное здесь, будет добавлено к условию соединения с использованием оператора AND.
scopes свойство (доступно с версии 1.1.9)
public mixed $scopes;
применяемые области видимости. Может быть установлено в одно из следующих значений:
- Одиночный область: 'scopes'=>'scopeName'.
- Множественные области: 'scopes'=>массив('scopeName1','scopeName2').
through свойство (доступно начиная с v1.1.7)
public string $through;
имя отношения, которое должно использоваться в качестве моста к этому отношению. По умолчанию null, что означает, что мост не используется.
together свойство
public boolean $together;
указывает, следует ли присоединять эту таблицу к основной таблице. Если установить это свойство в false, таблица, связанная с этим отношением, будет отображаться в отдельном операторе JOIN. Если это свойство установлено в true, соответствующая таблица ВСЕГДА будет присоединена к основной таблице, независимо от того, ограничена ли основная таблица. Если это свойство не установлено, соответствующая таблица будет присоединена к основной таблице только тогда, когда основная таблица не ограничена.
with свойство
public string|array $with;
указывается, какие связанные объекты следует загружать немедленно, когда этот связанный объект загружается лениво. Более подробную информацию об этом свойстве можно найти в CActiveRecord::with().
Подробное описание методов
mergeWith() метод
public void mergeWith(array $criteria, boolean $fromScope=false) | ||
| $criteria | массив | динамически указанные критерии |
| $fromScope | булево | являются ли критерии из областей |
public function mergeWith($criteria,$fromScope=false)
{
if($criteria instanceof CDbCriteria)
$criteria=$criteria->toArray();
if($fromScope)
{
if(isset($criteria['condition']) && $this->on!==$criteria['condition'])
{
if($this->on==='')
$this->on=$criteria['condition'];
elseif($criteria['condition']!=='')
$this->on="({$this->on}) AND ({$criteria['condition']})";
}
unset($criteria['condition']);
}
parent::mergeWith($criteria);
if(isset($criteria['joinType']))
$this->joinType=$criteria['joinType'];
if(isset($criteria['on']) && $this->on!==$criteria['on'])
{
if($this->on==='')
$this->on=$criteria['on'];
elseif($criteria['on']!=='')
$this->on="({$this->on}) AND ({$criteria['on']})";
}
if(isset($criteria['with']))
$this->with=$criteria['with'];
if(isset($criteria['alias']))
$this->alias=$criteria['alias'];
if(isset($criteria['together']))
$this->together=$criteria['together'];
}
Объединяет это отношение с динамически заданными критериями.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CActiveRelation