eZ\Publish\Core\REST\Server\Controller\ContentType::unlinkContentTypeFromGroup PHP Méthode

unlinkContentTypeFromGroup() public méthode

Removes the given group from the content type and returns the updated group list.
public unlinkContentTypeFromGroup ( $contentTypeId, $contentTypeGroupId ) : ContentTypeGroupRefList
$contentTypeId
$contentTypeGroupId
Résultat eZ\Publish\Core\REST\Server\Values\ContentTypeGroupRefList
    public function unlinkContentTypeFromGroup($contentTypeId, $contentTypeGroupId)
    {
        $contentType = $this->contentTypeService->loadContentType($contentTypeId);
        $contentTypeGroup = $this->contentTypeService->loadContentTypeGroup($contentTypeGroupId);
        $existingContentTypeGroups = $contentType->getContentTypeGroups();
        $contentTypeInGroup = false;
        foreach ($existingContentTypeGroups as $existingGroup) {
            if ($existingGroup->id == $contentTypeGroup->id) {
                $contentTypeInGroup = true;
                break;
            }
        }
        if (!$contentTypeInGroup) {
            throw new Exceptions\NotFoundException('Content type is not in the given group');
        }
        if (count($existingContentTypeGroups) == 1) {
            throw new ForbiddenException('Content type cannot be unlinked from the only remaining group');
        }
        $this->contentTypeService->unassignContentTypeGroup($contentType, $contentTypeGroup);
        $contentType = $this->contentTypeService->loadContentType($contentTypeId);
        return new Values\ContentTypeGroupRefList($contentType, $contentType->getContentTypeGroups());
    }