gpt4 book ai didi

symfony - 自定义单表单字段类型忽略 Symfony 2 中的验证?

转载 作者:行者123 更新时间:2023-12-04 05:37:33 26 4
gpt4 key购买 nike

我有一个可重用的(这里是简化的)自定义字段类型,它继承自 textarea类型。默认情况下,内容不能为空,所以我指定了 validation_constraint作为默认选项:

namespace Acme\HelloBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Validator\Constraints\NotBlank;

class SmsContentType extends AbstractType
{

public function getDefaultOptions(array $options)
{
return $options + array(
'label' => 'Testo *',
'validation_constraint' => new NotBlank()
);
}

public function getParent(array $options) { return 'textarea'; }

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

}

但是将内容留空不会显示任何错误。不靠近场本身,也不像使用 form_errors(form) 那样冒泡的错误.

我错在哪里?哦,我在另一个表单中使用这个自定义类型:
class UserType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('sms_birthday_template', new SmsContentType(), array(
'label' => 'SMS compleanno',
))
;
}
}

最佳答案

这是 Symfony 2.0 的限制。 “validation_constraint”选项仅适用于根表单。

在 Symfony 2.1 中,“validation_constraint”被重命名为“constraints”并且完全符合你的要求:

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'label' => 'Testo *',
'constraints' => new NotBlank()
));
}

关于symfony - 自定义单表单字段类型忽略 Symfony 2 中的验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11730869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com