protected function deleteSchemaPropertyElement($schema_property_element) { $con = Propel::getConnection(SchemaPropertyElementPeer::DATABASE_NAME); /** * @todo at some point we need to refuse to delete a required field **/ try { //start a transaction $con->begin(); //update the property page if ($schema_property_element->getIsSchemaProperty()) { $fieldName = $schema_property_element->getProfileProperty($con)->getName(); $fields = SchemaPropertyPeer::getFieldNames(BasePeer::TYPE_FIELDNAME); //get the property page $property = $schema_property_element->getSchemaPropertyRelatedBySchemaPropertyId($con); $property->setByName($fieldName, '', BasePeer::TYPE_FIELDNAME); $property->setUpdatedUserId($schema_property_element->getUpdatedUserId()); if ('is_subproperty_of' == $fieldName) { $property->setRelatedPropertyId(null); } $property->save($con); } $schema_property_element->delete(); //commit the transaction $con->commit(); } catch (PropelException $e) { $con->rollback(); throw $e; } }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = SchemaPropertyPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setId($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setCreatedAt($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setUpdatedAt($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setDeletedAt($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setCreatedUserId($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setUpdatedUserId($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setSchemaId($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setName($arr[$keys[7]]); } if (array_key_exists($keys[8], $arr)) { $this->setLabel($arr[$keys[8]]); } if (array_key_exists($keys[9], $arr)) { $this->setDefinition($arr[$keys[9]]); } if (array_key_exists($keys[10], $arr)) { $this->setComment($arr[$keys[10]]); } if (array_key_exists($keys[11], $arr)) { $this->setType($arr[$keys[11]]); } if (array_key_exists($keys[12], $arr)) { $this->setIsSubpropertyOf($arr[$keys[12]]); } if (array_key_exists($keys[13], $arr)) { $this->setParentUri($arr[$keys[13]]); } if (array_key_exists($keys[14], $arr)) { $this->setUri($arr[$keys[14]]); } if (array_key_exists($keys[15], $arr)) { $this->setStatusId($arr[$keys[15]]); } if (array_key_exists($keys[16], $arr)) { $this->setLanguage($arr[$keys[16]]); } if (array_key_exists($keys[17], $arr)) { $this->setNote($arr[$keys[17]]); } if (array_key_exists($keys[18], $arr)) { $this->setDomain($arr[$keys[18]]); } if (array_key_exists($keys[19], $arr)) { $this->setOrange($arr[$keys[19]]); } if (array_key_exists($keys[20], $arr)) { $this->setIsDeprecated($arr[$keys[20]]); } if (array_key_exists($keys[21], $arr)) { $this->setUrl($arr[$keys[21]]); } if (array_key_exists($keys[22], $arr)) { $this->setLexicalAlias($arr[$keys[22]]); } if (array_key_exists($keys[23], $arr)) { $this->setHashId($arr[$keys[23]]); } }