public function postSave(PropelPDO $con = null) { if ($this->permissionItemIdsChanged) { $currentPermissions = PermissionToPermissionItemPeer::retrieveByPermissionId($this->getId()); $currentPermissionsItemIds = array_map(function ($element) { return $element->getPermissionItemId(); }, $currentPermissions); // Remove old permissions $permissionsItemsToRemove = array_diff($currentPermissionsItemIds, $this->permissionItemIds); $this->deletePermissionItems($permissionsItemsToRemove); // Add new permissions $permissionsItemsToAdd = array_diff($this->permissionItemIds, $currentPermissionsItemIds); foreach ($permissionsItemsToAdd as $itemId) { if (!is_null($itemId) && $itemId !== '') { $permissionToPermissionItem = new PermissionToPermissionItem(); $permissionToPermissionItem->setPermissionItemId($itemId); $permissionToPermissionItem->setPermissionId($this->getId()); $permissionToPermissionItem->save(); } } } $this->permissionItemIds = null; $this->permissionItemIdsChanged = false; return parent::postSave($con); }
public function postSave(PropelPDO $con = null) { if ($this->permissionItemIdsChanged) { $this->deleteAllPermissionItems(); foreach ($this->permissionItemIds as $itemId) { if (!is_null($itemId) && $itemId !== '') { $permissionToPermissionItem = new PermissionToPermissionItem(); $permissionToPermissionItem->setPermissionItemId($itemId); $permissionToPermissionItem->setPermissionId($this->getId()); $permissionToPermissionItem->save(); } } } $this->permissionItemIds = null; $this->permissionItemIdsChanged = false; return parent::postSave($con); }