繁体   English   中英

Zend Framework 2表单,未应用正则表达式验证

[英]Zend Framework 2 Form, regex validation not being applied

我正在使用独立的Zend Form(我没有使用完整的ZF2 MVC),并且指定了以下类来定义表单:

use Zend\Form\Annotation;

/**
* @Annotation\Hydrator("Zend\Stdlib\Hydrator\ObjectProperty")
*/
class Student
{
    /**
     * @Annotation\Type("Zend\Form\Element\Text")
     * @Annotation\Options({"label":"Student code"})
     * @Annotations\Validator({"name":"Regex", "options":{"pattern":"/^[0-9]+$/"}})
     * @Annotation\Required({"required":"true"})
     */
    public $student_code;
}

这是我控制器中的相关代码(简化为仅显示相关部分)

public function createAction()
{
    $request = $this->getRequest();
    $student = new Student();
    $builder = new AnnotationBuilder();
    $form    = $builder->createForm($student);
    $form->bind($student);
    $form->setData($request->getPost());

    if ($form->isValid()) {
        var_dump($form->getPost());
    }
}

问题是,当我提交表单并将“ abc”作为student_code的值时,该表单将返回有效值。 根据正则表达式,它只能接受数字。

所需部分起作用; 如果student_code为空,则该表格无效。 我的问题是,我不知道正则表达式不能正常工作吗?

用。。。来代替:

 @Annotation\Validator({"name":"Regex", "options":{"pattern":"/^[0-9]+$/"}})

请注意,我从@Annotation的末尾删除了s

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM