eZ\Publish\Core\Repository\ContentTypeService::removeFieldDefinition PHP Method

removeFieldDefinition() public method

Remove a field definition from an existing Type.
public removeFieldDefinition ( eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft $contentTypeDraft, eZ\Publish\API\Repository\Values\ContentType\FieldDefinition $fieldDefinition )
$contentTypeDraft eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
$fieldDefinition eZ\Publish\API\Repository\Values\ContentType\FieldDefinition
    public function removeFieldDefinition(APIContentTypeDraft $contentTypeDraft, APIFieldDefinition $fieldDefinition)
    {
        if ($this->repository->hasAccess('class', 'update') !== true) {
            throw new UnauthorizedException('ContentType', 'update');
        }
        $loadedFieldDefinition = $this->loadContentTypeDraft($contentTypeDraft->id)->getFieldDefinition($fieldDefinition->identifier);
        if (empty($loadedFieldDefinition) || $loadedFieldDefinition->id != $fieldDefinition->id) {
            throw new InvalidArgumentException('$fieldDefinition', 'The given FieldDefinition does not belong to the ContentType');
        }
        $this->repository->beginTransaction();
        try {
            $this->contentTypeHandler->removeFieldDefinition($contentTypeDraft->id, SPIContentType::STATUS_DRAFT, $fieldDefinition->id);
            $this->repository->commit();
        } catch (Exception $e) {
            $this->repository->rollback();
            throw $e;
        }
    }