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
Property | Type | Description | Defined By |
---|---|---|---|
_aBehaviors | Список поведений в виде готовых объектов, формируется автоматически | LsObject | |
aBehaviors | array | Список поведений | LsObject |
aCollection | array | Список объектов связи | ORMRelationManyToMany |
bUpdated | bool | Флаг обновления списка объектов связи | ORMRelationManyToMany |
Public Methods
Method | Description | Defined 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
Method | Description | Defined 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;
}
Проверка списка на обновление