Вопрос по zend-form, validation, zend-framework2 – Отключить notInArray Validator Zend Framework 2

10

Есть ли способ отключить NotInArray Validator в Zend Framework 2. Вся информация в Интернете показывает, как отключить NotInArray Validator в Zend Framework 1, например, таким образом

Если вам вообще не нужен валидатор InArray, вы можете отключить это поведение, вызвав setRegisterInArrayValidator (false) для элемента или передав false в конфигурационный ключ registerInArrayValidator при создании элемента.

Один из постов в stackoverflow можно найтиВот

К сожалению, это невозможно в Zend Framework 2. Так что, если у кого-то есть совет, как это можно отключить.

это не в массиве является валидатором по умолчанию tawfekov
И как я могу изменить валидатор по умолчанию? vinigarcia87
Привет, Сэм! У меня есть выбор без валидатора, но ZF2 продолжает говорить, чтоThe input was not found in the haystack, Почему это происходит? vinigarcia87
Хм, валидаторы только присоединяются, если вы говорите им. Куда именно вы хотите, чтобы валидатор не был прикреплен? Ваш вопрос просто не совсем ясен, пожалуйста, обновите, чтобы люди могли лучше понять вашу проблему Sam

Ваш Ответ

5   ответов
3

и я заполнил элемент перед проверкой, например:

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

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

Это не отключает notInArray valitador, но вы можете обмануть его.

0

Если вам вообще не нужна проверка, добавьтеrequired => false в InputFilter

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

работал на меня ..

0

пока я заполнял свой HTML-элемент select через ajax, после многих поисков не нашел способа сделать это, и, в конце концов, создав собственный элемент select, я предоставлю вам свои изменения:

    /**
     * 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;
    }
0

что выложу его, так как нашел отличное решение ....http://samsonasik.wordpress.com/2012/10/01/zend-framework-2-extending-zendform-to-add-select-multicheckbox-emaildate-textarea-and-radio-element/

не пытайтесь деактивировать валидатор по умолчанию. переопределяет значения параметров выбора до setData.

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

Сохраняет беспорядок деактивации функции, если она вам нужна в другом месте

9

Zend Framework предоставляет возможностьотключить проверку inArray призвание:

$element->setDisableInArrayValidator(false);

или прохождениевариант к элементу:

'disable_inarray_validator' => false
Хорошо, но немного по-другому. Чтобы отключить, вы должны'disable_inarray_validator' => true, так как дважды отрицание это одобрение. zeliboba
Это только отключает сообщения ...... noobie-php

Похожие вопросы