Symfony 2-验证消息

时间:2015-08-09 10:02:34

标签: php symfony

我使用symfony验证器断言,在我的课程订阅中我有:

    public static void main(String[] args){
//        countTrees(3, false);
        System.out.println(countTrees(3, false));
        //System.out.println(count);
    }
    public static int countTrees(int numKeys, boolean internal) {
        //int temp = 0;
          int count = 0;
          if (numKeys <=1) {
              count += 1;
            return(1); 
          } 
          else { 
            int sum = 0; 

            int left, right, root;

            for (root=1; root<=numKeys; root++) {
              left = countTrees(root-1, true); 
              right = countTrees(numKeys - root, true);

              // number of possible trees with this root == left*right 
              sum += left*right; 
              count += root*left*right;

            }
//            System.out.println(count);
            if( internal )return(sum);
            else return count;
          }
    }

形式:

/**
 * @var string
 * @Assert\NotBlank(message="asasass")
 * */
    private $name;

我的控制器:

class SubscriptionType extends AbstractType{

    public function getName() {
        return 'Piotrek_subscription';
    }

    public function buildForm(FormBuilderInterface $builder, array $options) {
        $builder
                ->add('name', 'text', array(
                    'label' => 'Imię i nazwisko'

                ))
                ->add('email', 'text', array(

                ))
                ->add('save', 'submit', array(
                    'label' => 'Zapisz się'
                ));        }

    public function setDefaultOptions(OptionsResolverInterface $resolver) {
        $resolver->setDefaults(array(
            'data_class' => 'Piotrek\WitajBundle\Entity\Subscription'
        ));
    }
    }

我的表单未在评论中阅读自定义验证。施加标准,但也不知道在哪里。当我删除评论时,标尺仍然是相同的。 那么如何更改文本验证?

2 个答案:

答案 0 :(得分:1)

您的约束是服务器端,这意味着当您提交表单时,页面会重新加载,您将收到错误。但是,当您尝试提交空字段时,您看到的消息是默认的HTML5错误消息,因为除非您在formbuiler中另外提及,否则将根据需要呈现所有字段,这是您获取默认hhtml 5错误消息的原因

你可以做任何想要的事情:

方法1:这将显示您的自定义消息&#34; asasasas&#34;加载页面后

将所需选项设置为false

builder->add('name', 'text',array('required' => false )

方法2:

更改SubscriptionType内部的默认htm5错误消息,如下所示:(我不记得它,但这可能会指向正确的路径)

builder->add('name' ,'text',array(
'attr'=>array('oninvalid'=>"setCustomValidity('bla bla.. ')")

希望这适合你。

答案 1 :(得分:0)

看起来symfony没有读取代码中的注释。

可能您没有在app / config.yml中启用注释

framework:
    validation: { enabled: true, enable_annotations: true }