eZ\Publish\Core\Persistence\Legacy\Content\FieldHandler::createExistingFieldInNewVersion PHP Method

createExistingFieldInNewVersion() protected method

Used to insert a field with an existing ID but a new version number. $content is used for new version data, needed by Content gateway and external storage. 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.
protected createExistingFieldInNewVersion ( eZ\Publish\SPI\Persistence\Content\Field $field, eZ\Publish\SPI\Persistence\Content $content )
$field eZ\Publish\SPI\Persistence\Content\Field
$content eZ\Publish\SPI\Persistence\Content
    protected function createExistingFieldInNewVersion(Field $field, Content $content)
    {
        $originalField = clone $field;
        $field->versionNo = $content->versionInfo->versionNo;
        $this->contentGateway->insertExistingField($content, $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));
        }
    }