FluidTYPO3\Vhs\ViewHelpers\Form\FieldNameViewHelper::render PHP Method

render() public method

public render ( ) : string
return string
    public function render()
    {
        if ($this->isObjectAccessorMode()) {
            $formObjectName = $this->viewHelperVariableContainer->get(FormViewHelper::class, 'formObjectName');
            if (!empty($formObjectName)) {
                $propertySegments = explode('.', $this->arguments['property']);
                $propertyPath = '';
                foreach ($propertySegments as $segment) {
                    $propertyPath .= '[' . $segment . ']';
                }
                $name = $formObjectName . $propertyPath;
            } else {
                $name = $this->arguments['property'];
            }
        } else {
            $name = $this->arguments['name'];
        }
        if (null === $name || '' === $name) {
            return '';
        }
        if (!$this->viewHelperVariableContainer->exists(FormViewHelper::class, 'fieldNamePrefix')) {
            return $name;
        }
        $fieldNamePrefix = (string) $this->viewHelperVariableContainer->get(FormViewHelper::class, 'fieldNamePrefix');
        if ('' === $fieldNamePrefix) {
            return $name;
        }
        $fieldNameSegments = explode('[', $name, 2);
        $name = $fieldNamePrefix . '[' . $fieldNameSegments[0] . ']';
        if (1 < count($fieldNameSegments)) {
            $name .= '[' . $fieldNameSegments[1];
        }
        if ($this->viewHelperVariableContainer->exists(FormViewHelper::class, 'formFieldNames')) {
            $formFieldNames = $this->viewHelperVariableContainer->get(FormViewHelper::class, 'formFieldNames');
        } else {
            $formFieldNames = [];
        }
        $formFieldNames[] = $name;
        $this->viewHelperVariableContainer->addOrUpdate(FormViewHelper::class, 'formFieldNames', $formFieldNames);
        return $name;
    }