eZ\Publish\Core\Persistence\Legacy\Content\Type\ContentUpdater\Action\AddField::insertField PHP Method

insertField() protected method

If $field->id is null, creating new field id will be created. Otherwise it will be inserted for the given $content version, reusing existing Field id.
protected insertField ( eZ\Publish\SPI\Persistence\Content $content, eZ\Publish\SPI\Persistence\Content\Field $field ) : integer
$content eZ\Publish\SPI\Persistence\Content
$field eZ\Publish\SPI\Persistence\Content\Field
return integer The ID of the field that was inserted
    protected function insertField(Content $content, Field $field)
    {
        $storageValue = new StorageFieldValue();
        $this->fieldValueConverter->toStorageValue($field->value, $storageValue);
        if (isset($field->id)) {
            // Insert with existing Field id and given Content version number
            $this->contentGateway->insertExistingField($content, $field, $storageValue);
        } else {
            // Insert with creating new Field id and given Content version number
            $field->id = $this->contentGateway->insertNewField($content, $field, $storageValue);
        }
        // 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->storeFieldData($content->versionInfo, $field) === true) {
            $storageValue = new StorageFieldValue();
            $this->fieldValueConverter->toStorageValue($field->value, $storageValue);
            $this->contentGateway->updateField($field, $storageValue);
        }
        return $field->id;
    }