Spec-Zone.ru › Yii 1.1

CActiveRelation

Пакет system.db.ar
Наследование класс CActiveRelation » CBaseActiveRelation » CComponent
Подклассы CBelongsToRelation, CHasManyRelation, CHasOneRelation
С момента 1.0
Исходный код framework/db/ar/CActiveRecord.php
CActiveRelation — базовый класс для представления активных связей, которые возвращают связанные объекты.

Свойства

Свойство Тип Описание Определено в
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 смешанный применяемые области видимости. Может быть установлено в одно из следующих значений:
  • Одна область видимости: 'scopes'=>'scopeName'.
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 булево являются ли критерии из областей
Исходный код: framework/db/ar/CActiveRecord.php#2189 (показать)
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

Spec-Zone.ru

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