ORMRelationManyToMany

Package framework.engine.orm
Inheritance class ORMRelationManyToMany » LsObject
Since 2.0
Source Code /framework/classes/engine/ORMRelationManyToMany.class.php
Класс представляющий собой обёертку для связей MANY_TO_MANY. Позволяет оперировать коллекцией загруженных по связи элементов через имя связи Например
$oTopic->Tags->add($oTag)
// или
$oTopic->Tags->delete($oTag->getId())
при наличии настроенной MANY_TO_MANY связи 'tags'

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
aBehaviors array Список поведений LsObject
aCollection array Список объектов связи ORMRelationManyToMany
bUpdated bool Флаг обновления списка объектов связи ORMRelationManyToMany

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddBehaviorHook() Добавляет хук поведения LsObject
AttachBehavior() Присоединяет поведение к объекту LsObject
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
RemoveBehaviorHook() Удаляет хук поведения LsObject
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля LsObject
__clone() При клонировании сбрасываем поведения LsObject
__construct() Устанавливает список объектов ORMRelationManyToMany
__get() Обработка доступа к объекты поведения LsObject
add() Добавление объекта в список ORMRelationManyToMany
clear() Удаляет все объекты ORMRelationManyToMany
delete() Удаление объекта из списка по его id или массиву id ORMRelationManyToMany
getCollection() Возвращает список объектов связи ORMRelationManyToMany
isUpdated() Проверка списка на обновление ORMRelationManyToMany

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
PrepareBehaviors() Инициализация поведений LsObject

Property Details

aCollection property
protected array $aCollection;

Список объектов связи

bUpdated property
protected bool $bUpdated;

Флаг обновления списка объектов связи

Method Details

__construct() method
public void __construct($aCollection $aCollection)
$aCollection $aCollection Список объектов связи
Source Code: /framework/classes/engine/ORMRelationManyToMany.class.php#56 (show)
public function __construct($aCollection)
{
    
parent::__construct();
    if (!
$aCollection) {
        
$aCollection = array();
    }
    if (!
is_array($aCollection)) {
        
$aCollection = array($aCollection);
    }
    foreach (
$aCollection as $oEntity) {
        
$this->aCollection[$oEntity->_getPrimaryKeyValue()] = $oEntity;
    }
}

Устанавливает список объектов

add() method
public void add(Entity $oEntity)
$oEntity Entity
Source Code: /framework/classes/engine/ORMRelationManyToMany.class.php#75 (show)
public function add($oEntity)
{
    
$this->bUpdated true;
    
$this->aCollection[$oEntity->_getPrimaryKeyValue()] = $oEntity;
}

Добавление объекта в список

clear() method
public void clear()
Source Code: /framework/classes/engine/ORMRelationManyToMany.class.php#111 (show)
public function clear()
{
    
$this->bUpdated true;
    
$this->aCollection = array();
}

Удаляет все объекты

delete() method
public void delete(int|array $iId)
$iId int|array
Source Code: /framework/classes/engine/ORMRelationManyToMany.class.php#86 (show)
public function delete($iId)
{
    
$this->bUpdated true;
    if (
is_array($iId)) {
        foreach (
$iId as $id) {
            if (
is_object($id)) {
                
$id $id->_getPrimaryKeyValue();
            }
            if (isset(
$this->aCollection[$id])) {
                unset(
$this->aCollection[$id]);
            }
        }
    } else {
        if (
is_object($iId)) {
            
$iId $iId->_getPrimaryKeyValue();
        }
        if (isset(
$this->aCollection[$iId])) {
            unset(
$this->aCollection[$iId]);
        }
    }
}

Удаление объекта из списка по его id или массиву id

getCollection() method
public array getCollection()
{return} array
Source Code: /framework/classes/engine/ORMRelationManyToMany.class.php#122 (show)
public function getCollection()
{
    return 
$this->aCollection;
}

Возвращает список объектов связи

isUpdated() method
public bool isUpdated()
{return} bool
Source Code: /framework/classes/engine/ORMRelationManyToMany.class.php#132 (show)
public function isUpdated()
{
    return 
$this->bUpdated;
}

Проверка списка на обновление