Updates an existing field.
abstract public updateField ( eZ\Publish\SPI\Persistence\Content\Field $field, |
||
$field | eZ\Publish\SPI\Persistence\Content\Field | |
$value |
/** * Updates an existing field * * @param Field $field * @param StorageFieldValue $value * * @return void */ public function updateField(Field $field, StorageFieldValue $value) { try { return $this->innerGateway->updateField($field, $value); } catch (DBALException $e) { throw new RuntimeException('Database error', 0, $e); } catch (PDOException $e) { throw new RuntimeException('Database error', 0, $e); } }
/** * Updates a language copy of a non-translatable field. * * External data is being copied here as some FieldTypes require original field external data. * By default copying falls back to storing, it is upon external storage implementation to override * the behaviour as needed. * * @param \eZ\Publish\SPI\Persistence\Content\Field $field * @param \eZ\Publish\SPI\Persistence\Content\Field $updateField * @param \eZ\Publish\SPI\Persistence\Content\Field $originalField * @param \eZ\Publish\SPI\Persistence\Content $content */ protected function updateCopiedField(Field $field, Field $updateField, Field $originalField, Content $content) { $field->versionNo = $content->versionInfo->versionNo; $field->value = clone $updateField->value; $this->contentGateway->updateField($field, $this->mapper->convertToStorageValue($field)); // If the storage handler returns true, it means that $field value has been modified // So we need to update it in order to store those modifications // Field converter is called once again via the Mapper if ($this->storageHandler->copyFieldData($content->versionInfo, $field, $originalField) === true) { $this->contentGateway->updateField($field, $this->mapper->convertToStorageValue($field)); } }