我使用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'
));
}
}
我的表单未在评论中阅读自定义验证。施加标准,但也不知道在哪里。当我删除评论时,标尺仍然是相同的。 那么如何更改文本验证?
答案 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 }