/** * Performs the work of inserting or updating the row in the database. * * If the object is new, it inserts it; otherwise an update is performed. * All related objects are also updated in this method. * * @param ConnectionInterface $con * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. * @throws PropelException * @see save() */ protected function doSave(ConnectionInterface $con) { $affectedRows = 0; // initialize var to track total num of affected rows if (!$this->alreadyInSave) { $this->alreadyInSave = true; // We call the save method on the following object(s) if they // were passed to this object by their corresponding set // method. This object relates to these object(s) by a // foreign key reference. if ($this->aworkType !== null) { if ($this->aworkType->isModified() || $this->aworkType->isNew()) { $affectedRows += $this->aworkType->save($con); } $this->setworkType($this->aworkType); } if ($this->aprimaryArtist !== null) { if ($this->aprimaryArtist->isModified() || $this->aprimaryArtist->isNew()) { $affectedRows += $this->aprimaryArtist->save($con); } $this->setprimaryArtist($this->aprimaryArtist); } if ($this->isNew() || $this->isModified()) { // persist changes if ($this->isNew()) { $this->doInsert($con); $affectedRows += 1; } else { $affectedRows += $this->doUpdate($con); } $this->resetModified(); } if ($this->worksScheduledForDeletion !== null) { if (!$this->worksScheduledForDeletion->isEmpty()) { \SpoilerWiki\WorkQuery::create()->filterByPrimaryKeys($this->worksScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->worksScheduledForDeletion = null; } } if ($this->collWorks !== null) { foreach ($this->collWorks as $referrerFK) { if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { $affectedRows += $referrerFK->save($con); } } } if ($this->topicsScheduledForDeletion !== null) { if (!$this->topicsScheduledForDeletion->isEmpty()) { \SpoilerWiki\TopicQuery::create()->filterByPrimaryKeys($this->topicsScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->topicsScheduledForDeletion = null; } } if ($this->collTopics !== null) { foreach ($this->collTopics as $referrerFK) { if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { $affectedRows += $referrerFK->save($con); } } } if ($this->assignedRolesScheduledForDeletion !== null) { if (!$this->assignedRolesScheduledForDeletion->isEmpty()) { \SpoilerWiki\AssignedRoleQuery::create()->filterByPrimaryKeys($this->assignedRolesScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->assignedRolesScheduledForDeletion = null; } } if ($this->collAssignedRoles !== null) { foreach ($this->collAssignedRoles as $referrerFK) { if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { $affectedRows += $referrerFK->save($con); } } } $this->alreadyInSave = false; } return $affectedRows; }
/** * Performs the work of inserting or updating the row in the database. * * If the object is new, it inserts it; otherwise an update is performed. * All related objects are also updated in this method. * * @param ConnectionInterface $con * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. * @throws PropelException * @see save() */ protected function doSave(ConnectionInterface $con) { $affectedRows = 0; // initialize var to track total num of affected rows if (!$this->alreadyInSave) { $this->alreadyInSave = true; if ($this->isNew() || $this->isModified()) { // persist changes if ($this->isNew()) { $this->doInsert($con); $affectedRows += 1; } else { $affectedRows += $this->doUpdate($con); } $this->resetModified(); } if ($this->authTokensScheduledForDeletion !== null) { if (!$this->authTokensScheduledForDeletion->isEmpty()) { \SpoilerWiki\AuthTokenQuery::create()->filterByPrimaryKeys($this->authTokensScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->authTokensScheduledForDeletion = null; } } if ($this->collAuthTokens !== null) { foreach ($this->collAuthTokens as $referrerFK) { if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { $affectedRows += $referrerFK->save($con); } } } if ($this->assignedRoleGlobalsRelatedByUserIdScheduledForDeletion !== null) { if (!$this->assignedRoleGlobalsRelatedByUserIdScheduledForDeletion->isEmpty()) { \SpoilerWiki\AssignedRoleGlobalQuery::create()->filterByPrimaryKeys($this->assignedRoleGlobalsRelatedByUserIdScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->assignedRoleGlobalsRelatedByUserIdScheduledForDeletion = null; } } if ($this->collAssignedRoleGlobalsRelatedByUserId !== null) { foreach ($this->collAssignedRoleGlobalsRelatedByUserId as $referrerFK) { if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { $affectedRows += $referrerFK->save($con); } } } if ($this->assignedRoleGlobalsRelatedByAssignedByScheduledForDeletion !== null) { if (!$this->assignedRoleGlobalsRelatedByAssignedByScheduledForDeletion->isEmpty()) { \SpoilerWiki\AssignedRoleGlobalQuery::create()->filterByPrimaryKeys($this->assignedRoleGlobalsRelatedByAssignedByScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->assignedRoleGlobalsRelatedByAssignedByScheduledForDeletion = null; } } if ($this->collAssignedRoleGlobalsRelatedByAssignedBy !== null) { foreach ($this->collAssignedRoleGlobalsRelatedByAssignedBy as $referrerFK) { if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { $affectedRows += $referrerFK->save($con); } } } if ($this->assignedRolesRelatedByUserIdScheduledForDeletion !== null) { if (!$this->assignedRolesRelatedByUserIdScheduledForDeletion->isEmpty()) { \SpoilerWiki\AssignedRoleQuery::create()->filterByPrimaryKeys($this->assignedRolesRelatedByUserIdScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->assignedRolesRelatedByUserIdScheduledForDeletion = null; } } if ($this->collAssignedRolesRelatedByUserId !== null) { foreach ($this->collAssignedRolesRelatedByUserId as $referrerFK) { if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { $affectedRows += $referrerFK->save($con); } } } if ($this->assignedRolesRelatedByAssignedByScheduledForDeletion !== null) { if (!$this->assignedRolesRelatedByAssignedByScheduledForDeletion->isEmpty()) { \SpoilerWiki\AssignedRoleQuery::create()->filterByPrimaryKeys($this->assignedRolesRelatedByAssignedByScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->assignedRolesRelatedByAssignedByScheduledForDeletion = null; } } if ($this->collAssignedRolesRelatedByAssignedBy !== null) { foreach ($this->collAssignedRolesRelatedByAssignedBy as $referrerFK) { if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { $affectedRows += $referrerFK->save($con); } } } $this->alreadyInSave = false; } return $affectedRows; }