- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/item/task/field/member.php
- Класс: BitrixTasksItemTaskFieldMember
- Вызов: Member::saveValueToDataBase
public function saveValueToDataBase($value, $key, $item)
{
$value = $this->translateValueToDatabase($value, $key, $item);
$result = new Result();
$errors = $result->getErrors();
$itemId = $item->getId();
/** @var SubItem $itemClass */
$itemClass = static::getItemClass();
$itemState = $item->getTransitionState();
$isCreate = $itemState->isModeCreate();
$isDelete = $itemState->isModeDelete();
$newCodePattern = $this->getName().'.#CODE#';
$this->onBeforeSaveToDataBase($value, $key, $item);
$itemClass::enterBatchState();
if(!$isCreate)
{
// delete all, because we do not have simple primary key to delete by
$itemClass::deleteByParent($itemId);
}
if(!$isDelete)
{
// now add again...
/** @var SubItem $subItem */
foreach($value as $subItem)
{
// save each item of this collection separately
$subItem->setParentId($itemId);
$saveResult = $subItem->save(array(
'KEEP_DATA' => true,
));
$errors->load($saveResult->getErrors()->transform(array('CODE' => $newCodePattern)));
}
}
$itemClass::leaveBatchState();
return $result;
}