[Flow] Validation triggered when trying to show object in rest controller

Carsten Bleicker carsten at bleicker.de
Wed Nov 5 13:39:19 CET 2014


Running into the same and solved it by override the action invoking the validation:
	/**
	 * Invokes only on writing request methods (POST/PUT/PATCH)
	 *
	 * @return void
	 */
	protected function initializeActionMethodValidators() {
		if ($this->request->getHttpRequest()->getMethod() === 'POST' || $this->request->getHttpRequest()->getMethod() === 'PUT' || $this->request->getHttpRequest()->getMethod() === 'PATCH') {
			parent::initializeActionMethodValidators();
		}
	}


----------------------

Carsten Bleicker
Wülfingstraße 1
42477 Radevormwald

E-Mail:	carsten at bleicker.de
Web:	www.bleicker.de
Twitter:	@carstenbleicker
Jabber:	cbleicker at jabber.ccc.de
Telefon:	+49 (0)171-2690845

Am 05.11.2014 um 13:21 schrieb Christian Loock <chl at vkf-renzel.de>:

> Hello,
> 
> I am currently trying to implement a simple REST Controller. I defined a route like so:
> 
> -
>  name:'Project REST by FileSystem Name'
>  uriPattern:'REST/project/{project.fileSystemName}'
>  defaults:
>    '@format':'json'
>    '@package':'RA.ReleaseManager'
>    '@controller':'projectRest'
>  routeParts:
>    project:
>      objectType:'RA\ReleaseManager\Domain\Model\Project'
> 
> If I now try to call the controller, the validation of the Project Model is triggered:
> 
> Validation failed while trying to call RA\ReleaseManager\Controller\ProjectRestController->showAction().
> 
> In the Model, I have defined Validation for a property:
> 
> /**
> * The name, working copies of this project get in the file system, eg. flow_vkf_admin
> *@varstring
> *@Flow\Validate(type="RegularExpression", options={"regularExpression"="/^[^_]*_[^_]*_[^_]*$/"})
> *@Flow\Validate(type="NotEmpty")
> */
> protected$fileSystemName;
> 
> But I wonder, why this is even triggered, and why it throws an error, since it is a model, that has been created before using the MVC stack, running through validation just fine. Unfortunatly it doesnt give me any further information on why the validation fails. I already looked into the logs, with no success in finding what is going wrong here.
> 
> So this let's me with a couple of questions:
> 
> 1. Why is Validation even triggered on a safe (GET) request.
> 2. How is it possible that the validation fails, for an object that should be loaded from the database, according to the routing.
> 3. Where can I see why the validation fails in a REST controller?
> _______________________________________________
> Flow mailing list
> Flow at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/flow



More information about the Flow mailing list