【问题标题】:Validation Symfony2 Entity Choice Field验证 Symfony2 实体选择字段
【发布时间】:2015-02-10 14:43:50
【问题描述】:

我正在尝试验证 symfony 2.3 项目中的表单, 所以我有一个“客户”字段:

$builder
    ->add('customer', 
          'entity', 
           array('property'=> 'item',
                 'multiple' => true, 
                 'expanded' => true, 
                 'class' => 'OrdersBundle:Customer', 
                 'required' => true, 'empty_value' => '',
                 'query_builder' => function(\Ella\OrdersBundle\Repository\CustomerRepository $er) {
            return $er->createQueryBuilder('q')->andWhere("q.is_delete = 0")->orderBy('q.item', 'asc');
        }));

当用户没有选择任何东西时,我试图返回一个错误,所以我这样做了:

properties:
    customer: 
        - Choice: { min: 1, minMessage: 'message' }

或者

 properties:
    customer: 
        - NotBlank: 
            message: message

和其他东西,但没有任何效果,我做错了什么的想法? 在文档中他们说我们可以使用数组,但这也不起作用......

实际上 Symfony 返回:

必须在约束Choice上指定“选择”或“回调”

【问题讨论】:

    标签: php validation symfony


    【解决方案1】:

    对于Choice 验证器,您需要从文档中指定一个包含可用选项的数组或一个回调函数:

    此约束用于确保给定值是一组给定的有效选择之一。它还可用于验证项目数组中的每个项目是否是这些有效选择之一。

    您可以使用Count 验证器:

    customer:
            - Count:
                min: 1
                max: 99
                minMessage: "Min message"
                maxMessage: "You cannot specify more than {{ limit }}"
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多