10

Zend Framework 2 で notInArray Validator を無効にする方法はありますか。インターネット上のすべての情報は、Zend Framework 1 で notInArray Validator を無効にする方法を示しています。たとえば、この方法で

InArray バリデータがまったく必要ない場合は、要素に対して setRegisterInArrayValidator(false) を呼び出すか、要素の作成時に registerInArrayValidator 構成キーに false を渡すことで、この動作を無効にすることができます。

stackoverflow の投稿の 1 つをここで見つけることができます

残念ながら、これは Zend Framework 2 では不可能です。そのため、誰かがこれを無効にする方法のヒントを持っている場合に備えて。

4

5 に答える 5

9

バージョン 2.2 以降、Zend Framework はinArray バリデータの呼び出しを無効にする機能を提供します。

$element->setDisableInArrayValidator(false);

またはオプションを要素に渡す:

'disable_inarray_validator' => false
于 2013-05-13T13:29:03.523 に答える
3

私は同じ問題を抱えていましたが、検証する前に要素にデータを入力しました。たとえば、

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

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

これは notInArray バリタドールを無効にしませんが、だますことができます。

于 2013-01-18T17:09:46.600 に答える
0

私は同じケースに来ました:私は多くの検索がそれを行う方法を見つけられなかった後、ajaxを介してhtml選択要素にデータを入力していましたが、独自の選択フォーム要素を作成して終了しましたが、変更を提供します:

    /**
     * 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;
    }
于 2012-11-07T13:04:57.480 に答える
0

検証がまったく必要ない場合はrequired => false、InputFilter を追加します。

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

私のために働いた..

于 2013-12-02T14:25:38.943 に答える