eZ\Publish\Core\Repository\ContentService::mapFieldsForCreate PHP Method

mapFieldsForCreate() protected method

Returns an array of fields like $fields[$field->fieldDefIdentifier][$field->languageCode].
protected mapFieldsForCreate ( eZ\Publish\API\Repository\Values\Content\ContentCreateStruct $contentCreateStruct ) : array
$contentCreateStruct eZ\Publish\API\Repository\Values\Content\ContentCreateStruct
return array
    protected function mapFieldsForCreate(APIContentCreateStruct $contentCreateStruct)
    {
        $fields = array();
        foreach ($contentCreateStruct->fields as $field) {
            $fieldDefinition = $contentCreateStruct->contentType->getFieldDefinition($field->fieldDefIdentifier);
            if ($fieldDefinition === null) {
                throw new ContentValidationException("Field definition '%identifier%' does not exist in given ContentType", ['%identifier%' => $field->fieldDefIdentifier]);
            }
            if ($field->languageCode === null) {
                $field = $this->cloneField($field, array('languageCode' => $contentCreateStruct->mainLanguageCode));
            }
            if (!$fieldDefinition->isTranslatable && $field->languageCode != $contentCreateStruct->mainLanguageCode) {
                throw new ContentValidationException("A value is set for non translatable field definition '%identifier%' with language '%languageCode%'", ['%identifier%' => $field->fieldDefIdentifier, '%languageCode%' => $field->languageCode]);
            }
            $fields[$field->fieldDefIdentifier][$field->languageCode] = $field;
        }
        return $fields;
    }