2012-11-01 7 views
10

Czy istnieje sposób, aby wyłączyć notInArray Validator w Zend Framework 2. Wszystkie informacje w internecie pokazuje, jak wyłączyć notInArray Validator w Zend Framework 1, na przykład w ten sposóbWyłącz notInArray Validator Zend Framework 2

Jeśli w ogóle nie chcesz walidatora InArray, możesz wyłączyć to zachowanie, wywołując funkcję setRegisterInArrayValidator (false) na elemencie lub przekazując wartość false do klucza konfiguracyjnego registerInArrayValidator podczas tworzenia elementu.

jednym z postów na stackoverflow można znaleźć here

Niestety nie jest to możliwe w Zend Framework 2. Tak więc w przypadku, gdy ktoś ma wskazówka jak to może być wyłączone.

+0

Erm, zatwierdzające się tylko przywiązany jeśli im powiedzieć. Gdzie dokładnie nie chcesz dołączać walidatora? Twoje pytanie jest po prostu niejasne, proszę zaktualizować, aby ludzie mogli lepiej zrozumieć twój problem – Sam

+0

Hej Sam! Mam wybór bez weryfikatora, ale ZF2 mówi, że 'Wejście nie zostało znalezione w stogu siana '. Dlaczego tak się dzieje? – vinigarcia87

+0

to Nie w tablicy jest domyślnym weryfikatorem – tawfekov

Odpowiedz

0

Przyszedłem z tym samym przypadkiem: podczas gdy zapełniłem mój element wyboru html poprzez ajax po tym, jak wiele wyszukiwań nie znalazło sposobu na zrobienie tego, kończąc na stworzeniu mojego własnego elementu formularza wyboru, dostarczę ci moje zmiany:

/** 
    * Provide default input rules for this element 
    * 
    * Attaches the captcha as a validator. 
    * 
    * @return array 
    */ 
    public function getInputSpecification() 
    { 
     $spec = array(
      'name' => $this->getName(), 
      'required' => true, 
      //// make sure to delete the validators array in the next line 
      'validators' => array( 
       $this->getValidator() 
      ) 
     ); 

     return $spec; 
    } 
2

miałem ten sam problem i co zrobiłem to przed zapełnić element zatwierdzić go, na przykład:

$clientForm->get('city')->setValueOptions($options); 
$clientForm->setData($post); 

if ($clientForm->isValid()) { 
    // 
} else { 
    // 
} 

to nie wyłączysz notInArray valitador ale można go oszukać.

0

Znalazłem to pod tym linkiem, a myślałem, że po to, jak uważam, że to doskonałe rozwiązanie .... http://samsonasik.wordpress.com/2012/10/01/zend-framework-2-extending-zendform-to-add-select-multicheckbox-emaildate-textarea-and-radio-element/

nie próbują DEACTIVE domyślny walidator. ponownie wartościuje wartości opcji select before setData.

$form->get('state_id') 
    ->setOptions(
      array('value_options'=> $Newstatecollection)) ; 

Zapisuje bałagan wyłączanie funkcji, jeśli jest to potrzebne gdzie indziej

9

Od wersji 2.2, Zend Framework dają możliwość wyłączyć inArray walidator numerem:

$element->setDisableInArrayValidator(false); 

lub przechodząc opcja do elementu:

'disable_inarray_validator' => false 
+0

Wyłącza to tylko wiadomości ...... –

+4

Dobra, ale trochę inna. Aby wyłączyć, należy "disable_inarray_validator" => true', ponieważ dwukrotna negacja jest zatwierdzeniem. – zeliboba

0

Jeśli nie trzeba w ogóle walidacji, dodać required => false w InputFilter

$this->add(array(
     'name' => 'your-elements-name', 
     'required' => false, 
    )); 

pracował dla mnie ..