2014-09-08 2 views
0

Hiho,La validation du formulaire ZF2 est vide Les validations échouent toujours

J'ai un problème avec un formulaire ZF2. Chaque fois que je soumets j'ai eu l'erreur suivante:

(result of $form->isValid() and var_dump($form->getMessages()); 

array (size=1) 
'imagecode' => 
    array (size=1) 
    'isEmpty' => string 'Value is required and can't be empty' (length=36) 

Ce qui suit est le 'imagecode' - formfieldcode:

public function __construct($name = null) 
{ 
    parent::__construct('advert'); 

    $this->setAttribute('method', 'post'); 

    $this->add(array(
     'name' => 'imagecode', 
     'type' => 'Zend\Form\Element\Textarea', 
     'attributes' => array(
      'required' => 'required', 
     ), 
     'options' => array(
      'label' => 'Bannercode:' 
     ), 
    )); 

Et le validateur:

public function getInputFilter() 
{ 
    if (!$this->_inputFilter) { 
     $inputFilter = new InputFilter(); 
     $factory  = new InputFactory(); 

...

 $inputFilter->add($factory->createInput(array(
      'name'  => 'imagecode', 
      'required' => true, 
      'filters' => array(
       array('name' => 'StripTags'), 
       array('name' => 'StringTrim'), 
      ), 
      'validators' => array(
       array(
        'name' => 'StringLength', 
        'options' => array(
         'min'  => '3', 
         'max'  => '5000', 
        ), 
       ), 
      ), 
     ))); 

     $this->_inputFilter = $inputFilter; 
    } 

    return $this->_inputFilter; 
} 

Les autres champs fonctionnent correctement et sont validés mais pas le Textarea.

Enfin, le ControllerCode:

$advert = $service->getAdvertById($id); 
     $form = $service->getAdvertForm(); 
     $request = $this->getRequest(); 

     $form->bind($advert); 

     if ($request->isPost()) { 
      $filter = new AdvertFilter(); 
      $form->setData($request->getPost()); 

      $form->setInputFilter($filter->getInputFilter()); 

Après cette validation échoue et je ne sais pas pourquoi. J'espère que quelqu'un peut m'aider.

+0

Pouvez-vous nous montrer ce que vous essayez d'entrer dans ce domaine? Quelques exemples de données de poste. – guessimtoolate

Répondre

0

je l'ai compris. J'essaie d'entrer le code html afin que le

array('name' => 'StripTags') 

enlevé.

Parfois, c'est si simple.

0

Regardez cette ligne:

'required' => 'required, 

et .... changement:

'required' => 'required', 
+0

Ceci est seulement une erreur de copier-coller;) –

+0

look 'required' => 'requis ICI PAS AVOIR' '' '' '', –

Questions connexes