Neos\FluidAdaptor\ViewHelpers\Form\UploadViewHelper::render PHP Метод

render() публичный Метод

Renders the upload field.
public render ( ) : string
Результат string
    public function render()
    {
        $nameAttribute = $this->getName();
        $this->registerFieldNameForFormTokenGeneration($nameAttribute);
        $output = '';
        $resource = $this->getUploadedResource();
        if ($resource !== null) {
            $resourceIdentityAttribute = '';
            if ($this->hasArgument('id')) {
                $resourceIdentityAttribute = ' id="' . htmlspecialchars($this->arguments['id']) . '-resource-identity"';
            }
            $output .= '<input type="hidden" name="' . htmlspecialchars($nameAttribute) . '[originallySubmittedResource][__identity]" value="' . $this->persistenceManager->getIdentifierByObject($resource) . '"' . $resourceIdentityAttribute . ' />';
        }
        if ($this->hasArgument('collection') && $this->arguments['collection'] !== false && $this->arguments['collection'] !== '') {
            $output .= '<input type="hidden" name="' . htmlspecialchars($nameAttribute) . '[__collectionName]" value="' . htmlspecialchars($this->arguments['collection']) . '" />';
        }
        $this->tag->addAttribute('type', 'file');
        $this->tag->addAttribute('name', $nameAttribute);
        $this->addAdditionalIdentityPropertiesIfNeeded();
        $this->setErrorClassAttribute();
        $output .= $this->tag->render();
        return $output;
    }

Usage Example

 /**
  * @test
  */
 public function hiddenFieldsContainDataOfBoundPropertyIfNoValueArgumentIsSetAndNoResourceHasBeenUploaded()
 {
     $mockResourceUuid = '79ecda60-1a27-69ca-17bf-a5d9e80e6c39';
     /** @var Result|\PHPUnit_Framework_MockObject_MockObject $mockValidationResults */
     $mockValidationResults = $this->getMockBuilder(Result::class)->disableOriginalConstructor()->getMock();
     $mockValidationResults->expects($this->atLeastOnce())->method('hasErrors')->will($this->returnValue(false));
     $this->request->expects($this->atLeastOnce())->method('getInternalArgument')->with('__submittedArgumentValidationResults')->will($this->returnValue($mockValidationResults));
     /** @var PersistentResource|\PHPUnit_Framework_MockObject_MockObject $mockPropertyResource */
     $mockPropertyResource = $this->getMockBuilder(PersistentResource::class)->disableOriginalConstructor()->getMock();
     $mockFormObject = array('foo' => $mockPropertyResource);
     $this->viewHelperVariableContainerData[FormViewHelper::class] = array('formObjectName' => 'someObject', 'formObject' => $mockFormObject);
     $mockPersistenceManager = $this->createMock(PersistenceManagerInterface::class);
     $mockPersistenceManager->expects($this->once())->method('getIdentifierByObject')->with($this->identicalTo($mockPropertyResource))->will($this->returnValue($mockResourceUuid));
     $this->inject($this->viewHelper, 'persistenceManager', $mockPersistenceManager);
     $this->viewHelper->setArguments(array('property' => 'foo'));
     $expectedResult = '<input type="hidden" name="someObject[foo][originallySubmittedResource][__identity]" value="' . $mockResourceUuid . '" />';
     $actualResult = $this->viewHelper->render();
     $this->assertSame($expectedResult, $actualResult);
 }