ZF2中的条件验证

时间:2013-09-14 11:56:11

标签: forms validation zend-framework2

我有一个以Select和两个选项开头的表单。还有其他几个字段,其中一些是第一个Select选项所必需的,另一个是第二个Select选项所需的字段。

在视图中,我使用Select来显示/隐藏相关/不相关的字段。选择Select中的选项时,大多数这些字段都是必需的。

仅验证与Select中选择的内容相关的字段的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

在您的控制器中,您可以执行类似的操作(键是表单的 setValidationGroup 函数):

//GET THE FORM
$form = $this->getServiceLocator()->get( '<FORM_NAME>' );

//GET THE POSTED DATA
$request = $this->getRequest();
$data = get_object_vars( $request->getPost() );

//DEPENDING ON THE SELECT VALUE, VALIDATE THIS OR THAT FIELDS
if ( $data[ 'SELECT_NAME' ] === 'A' ) {
    $form->setValidationGroup( array( 'INPUT_A', 'INPUT_B' ) );
} else {
    $form->setValidationGroup( array( 'INPUT_C', 'INPUT_D' ) );
}

//PERFORM THE FORM VALIDATION
if ( !$form->isValid() ) {
    //FORM IS WRONG
    ( ... )
}

//FORM IS OK
( ... )