Spec-Zone.ru › Yii 1.1

CBaseActiveRelation

Пакет system.db.ar
Наследование класс CBaseActiveRelation » CComponent
Подклассы CActiveRelation, CStatRelation
Исходный код framework/db/ar/CActiveRecord.php
CBaseActiveRelation — базовый класс для всех активных отношений.

Свойства

Свойство Тип Описание Определено в
className строка имя класса связанной активной записи CBaseActiveRelation
condition строка условие WHERE. Для подклассов CActiveRelation имена столбцов, упоминаемые в условии, должны быть уточнены префиксом 'relationName.'. CBaseActiveRelation
foreignKey смешанный тип внешний ключ в данном отношении CBaseActiveRelation
group строка условие GROUP BY. Для подклассов CActiveRelation имена столбцов, упоминаемые в этом свойстве, должны быть уточнены префиксом 'relationName.'. CBaseActiveRelation
having строка условие HAVING. Для подклассов CActiveRelation имена столбцов, упоминаемые в этом свойстве, должны быть уточнены префиксом 'relationName.'. CBaseActiveRelation
join строка способ объединения с другими таблицами. Это относится к условию JOIN в SQL-запросе. Например, 'LEFT JOIN users ON users.id=authorID'. CBaseActiveRelation
joinOptions строка/массив свойство для установки операций после JOIN, таких как USE INDEX. Строковое значение можно использовать для JOIN в отношениях HAS_MANY и MANY_MANY, а массивы предназначены только для отношений MANY_MANY. Первый элемент массива будет использован для JOIN таблицы соединения, а второй — для JOIN целевой таблицы. CBaseActiveRelation
name строка имя связанного объекта CBaseActiveRelation
order строка условие ORDER BY. Для подклассов CActiveRelation имена столбцов, упоминаемые в этом свойстве, должны быть уточнены префиксом 'relationName.'. CBaseActiveRelation
params массив параметры, которые должны быть привязаны к условию. Ключи — имена заглушек параметров, значения — значения параметров. CBaseActiveRelation
select смешанный тип список имён столбцов (массив или строка имён, разделённых запятыми), которые должны быть выбраны. CBaseActiveRelation

Методы

Метод Описание Определено в
__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() Объединяет данное отношение с динамически заданными критериями. CBaseActiveRelation
raiseEvent() Вызывает событие. CComponent

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

className свойство

public string $className;

имя класса связанной активной записи

condition свойство

public string $condition;

условие WHERE. Для подклассов CActiveRelation имена столбцов, упоминаемые в условии, должны быть уточнены префиксом 'relationName.'.

foreignKey свойство

public mixed $foreignKey;

внешний ключ в данном отношении

group свойство

public string $group;

условие GROUP BY. Для подклассов CActiveRelation имена столбцов, упоминаемые в этом свойстве, должны быть уточнены префиксом 'relationName.'.

having свойство

public string $having;

условие HAVING. Для подклассов CActiveRelation имена столбцов, упоминаемые в этом свойстве, должны быть уточнены префиксом 'relationName.'.

join свойство (доступно начиная с v1.1.3)

public string $join;

способ объединения с другими таблицами. Это относится к условию JOIN в SQL-запросе. Например, 'LEFT JOIN users ON users.id=authorID'.

joinOptions свойство (доступно начиная с v1.1.16)

public string|array $joinOptions;

свойство для установки операций после JOIN, таких как USE INDEX. Строковое значение можно использовать для JOIN в отношениях HAS_MANY и MANY_MANY, а массивы предназначены только для отношений MANY_MANY. Первый элемент массива будет использован для JOIN таблицы соединения, а второй — для JOIN целевой таблицы.

name свойство

public string $name;

имя связанного объекта

order свойство

public string $order;

условие ORDER BY. Для подклассов CActiveRelation имена столбцов, упоминаемые в этом свойстве, должны быть уточнены префиксом 'relationName.'.

params свойство

public array $params;

параметры, которые должны быть привязаны к условию. Ключи — имена заглушек параметров, значения — значения параметров.

select свойство

public mixed $select;

список имён столбцов (массив или строка имён, разделённых запятыми), которые нужно выбрать. Не заключайте имена столбцов в кавычки и не добавляйте префиксы, если только они не используются в выражении. В этом случае имена столбцов нужно префиксровать 'relationName.'.

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

__construct() метод

public void __construct(string $name, string $className, string $foreignKey, array $options=array ( ))
$name строка имя отношения
$className строка имя класса связанной активной записи
$foreignKey строка внешний ключ для этого отношения
$options массив дополнительные параметры (имя=>значение). Ключи должны соответствовать именам свойств этого класса.
Исходный код: framework/db/ar/CActiveRecord.php#2008 (показать)
public function __construct($name,$className,$foreignKey,$options=array())
{
    
$this->name=$name;
    
$this->className=$className;
    
$this->foreignKey=$foreignKey;
    foreach(
$options as $name=>$value)
        
$this->$name=$value;
}

Конструктор.

mergeWith() метод

public void mergeWith(array $criteria, boolean $fromScope=false)
$criteria массив динамически заданные критерии
$fromScope логическое значение являются ли критерии из областей
Исходный код: framework/db/ar/CActiveRecord.php#2022 (показать)
public function mergeWith($criteria,$fromScope=false)
{
    if(
$criteria instanceof CDbCriteria)
        
$criteria=$criteria->toArray();
    if(isset(
$criteria['select']) && $this->select!==$criteria['select'])
    {
        if(
$this->select==='*'||$this->select===false)
            
$this->select=$criteria['select'];
        elseif(
$criteria['select']===false)
            
$this->select=false;
        elseif(
$criteria['select']!=='*')
        {
            
$select1=is_string($this->select)?preg_split('/\s*,\s*/',trim($this->select),-1,PREG_SPLIT_NO_EMPTY):$this->select;
            
$select2=is_string($criteria['select'])?preg_split('/\s*,\s*/',trim($criteria['select']),-1,PREG_SPLIT_NO_EMPTY):$criteria['select'];
            
$this->select=array_merge($select1,array_diff($select2,$select1));
        }
    }

    if(isset(
$criteria['condition']) && $this->condition!==$criteria['condition'])
    {
        if(
$this->condition==='')
            
$this->condition=$criteria['condition'];
        elseif(
$criteria['condition']!=='')
            
$this->condition="({$this->condition}) AND ({$criteria['condition']})";
    }

    if(isset(
$criteria['params']) && $this->params!==$criteria['params'])
        
$this->params=array_merge($this->params,$criteria['params']);

    if(isset(
$criteria['order']) && $this->order!==$criteria['order'])
    {
        if(
$this->order==='')
            
$this->order=$criteria['order'];
        elseif(
$criteria['order']!=='')
            
$this->order=$criteria['order'].', '.$this->order;
    }

    if(isset(
$criteria['group']) && $this->group!==$criteria['group'])
    {
        if(
$this->group==='')
            
$this->group=$criteria['group'];
        elseif(
$criteria['group']!=='')
            
$this->group.=', '.$criteria['group'];
    }

    if(isset(
$criteria['join']) && $this->join!==$criteria['join'])
    {
        if(
$this->join==='')
            
$this->join=$criteria['join'];
        elseif(
$criteria['join']!=='')
            
$this->join.=' '.$criteria['join'];
    }

    if(isset(
$criteria['having']) && $this->having!==$criteria['having'])
    {
        if(
$this->having==='')
            
$this->having=$criteria['having'];
        elseif(
$criteria['having']!=='')
            
$this->having="({$this->having}) AND ({$criteria['having']})";
    }
}

Объединяет это отношение с динамически заданными критериями.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CBaseActiveRelation

Spec-Zone.ru

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