[TYPO3-mvc] yes, nested objects validation is a missing feature at current extbase version (1.3)

Alisha mail at alisha-huber.de
Fri Oct 21 13:50:07 CEST 2011


Hi Eric,
I have already this snippet in the template,  the problem must have 
another cause. Can you write your example-class and other snippets you 
use? That should work with 1:1 Relation?
Thank you!
Alisha



Am 21.10.2011 00:39, schrieb Eric S. Auchterberge:
> Hi Alisha,
>
> You can easily access validation errors using Form.erros view helper.
> As I have some nested objects I need to even access errors of each
> propertyError object, somthing like:
>
> In main template:
>
> <f:render partial="FormErrors" />
>
> and at FormErrors.html :
>
> <f:form.errors>
>      <div class="error">
>          <h4>
>              Following fields has errors:
>          </h4>
>          <ul>
>          <f:for each="{error.errors}" as="errorDetail">
>              <f:for each="{errorDetail.errors}" as="subErrorDetail">
>
> ...
>
> Greetings,
> Eric
>
> On Thu, Oct 20, 2011 at 6:03 PM, Alisha<mail at alisha-huber.de>  wrote:
>
>> I have a class Tx_xx_Domain_Validator_**CoupleValidator
>> as described by you. I do not know what I must do even more.
>>
>> in my update action I use:
>> @validate $couple Tx_xx_Domain_Validator_**CoupleValidator
>>
>> But how do I get the errors?
>>
>> in the update action I tried:
>> $errors = $this->errors();
>> $errors = $this->request->getErrors();
>> if($errors){
>>   foreach ($errors as $error){
>>      foreach($error->getErrors() as $e) {
>>                       $this->flashMessages->add($e->**getMessage());
>> }}}
>>
>> but it do not work ..
>>
>> the only error : An error occurred while trying to call Tx_xx_Controller_*
>> *CoupleController->**updateAction()
>>
>> Regards
>> Alisha
>>
>> Couple has a 1:1 relation zu appM
>>
>> my validator-class:
>> class Tx_Dancestudio_Domain_**Validator_CoupleValidator extends
>> Tx_Extbase_Validation_**Validator_AbstractValidator {
>>
>>
>>     /**
>>      * @var $objectManager Tx_Extbase_Object_**ObjectManager
>>      */
>>     protected $objectManager;
>>
>>     public function injectObjectManager(Tx_**Extbase_Object_ObjectManager
>> $objMgr) {
>>         $this->objectManager = $objMgr;
>>     }
>>     /**
>>      * Checks if the given value is valid according to the validator.
>>      *
>>      * If at least one error occurred, the result is FALSE and any errors
>> can
>>      * be retrieved through the getErrors() method.
>>      *
>>      * Note that all implementations of this method should set
>> $this->errors() to an
>>      * empty array before validating.
>>      *
>>      * @param mixed $value The value that should be validated
>>      * @return boolean TRUE if the value is valid, FALSE if an error occured
>>      */
>>     public function isValid($value) {
>>         if(!is_object($value) || !$value instanceof
>> Tx_Dancestudio_Domain_Model_**Couple) {
>>                 return FALSE;
>>         }
>>
>>         $appMValidator = $this->objectManager->get('Tx_**
>> Extbase_Validation_**ValidatorResolver')->**getBaseValidatorConjunction('*
>> *Tx_Dancestudio_Domain_Model_**Application');
>>         if (!$appMValidator->isValid($**value->getAppM())) {
>>             $this->errors[] = $this->createPropertyError('**appM',
>> $appMValidator->getErrors());
>>
>>         }
>>
>>
>>
>>         return count($this->errors) == 0;
>>     }
>>
>>     /**
>>      * @param string $propertyName
>>      * @param array $errors
>>      * @return Tx_Extbase_Validation_**PropertyError
>>      */
>>     protected function createPropertyError($**propertyName, array $errors)
>> {
>>         $error = new Tx_Extbase_Validation_**PropertyError($propertyName);
>>         $error->addErrors($errors);
>>         return $error;
>>     }
>> }
>> ______________________________**_________________
>> TYPO3-project-typo3v4mvc mailing list
>> TYPO3-project-typo3v4mvc@**lists.typo3.org<TYPO3-project-typo3v4mvc at lists.typo3.org>
>> http://lists.typo3.org/cgi-**bin/mailman/listinfo/typo3-**
>> project-typo3v4mvc<http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-typo3v4mvc>
>>



More information about the TYPO3-project-typo3v4mvc mailing list