(mixed) $vResult umiObjectsCollection :: cloneObject ( (int) $iObjectId )

Описание:

Метод создает новый объект, копирующий существующий объект-"образец", идентификатор которого $iObjectId метод принимает на входе. Возвращает идентификатор нового объекта (integer), либо false, если клонирование произвести не удалось.

В результате применения метода создается новый объект и значения всех его свойств выставляются такими же, как и у объекта-образца.

Альтернативный способ - создать новый объект и выставить ему все свойства по отдельности, запрашивая значение каждого из них у объекта-образца. Выбор конкретного способа - клонировать в одно действие и далее заменить несколько свойств нового объекта, или создать новый и заполнять необходимые свойства "с ноля" зависит от того, какое количество свойств нового объекта отличается от образца. При большом количестве совпадений лучше применить клонирование; клонировать же ради одного свойства не стоит.


Пример кода:

<?php
/*
Данный метод клонирует объект типа "Купон" заданного образца (принимая на входе идентификатор одного из предсозданных объектов), изменяя только свойства "Серийный номер" и "Владелец"
*/
public function generateNewCoupon($iModelId) {
$iNewCoupon = umiObjectsCollection->getInstance()->cloneObject($iModelId);
if (
$iNewCoupon) {
$oNewCoupon = umiObjectsCollection->getInstance()->getObject($iNewCoupon);
if (
$oNewCoupon instanceof umiObject) {
$oNewCoupon->setValue('SerialNumber', uniqid(''));
$oNewCoupon->setOwnerId(cmsController::getInstance()->getModule('users')->user_id);
$oNewCoupon->commit();
}
}
}
?>


Сайт с системой управления от 6000 рублей!