验证symfony2中的数字字段

时间:2012-06-06 12:25:49

标签: forms validation symfony

我有以下情况: 在我的FormType类中:

... 
$builder->add('fieldToValidate', 'number', array('required' => false))
...

在模型类中:

...
use Symfony\Component\Validator\Constraints as Assert;
...
/**
 * @var float $fieldToValidate
 *
 * @ORM\Column(name="fieldToValidate", type="float", nullable=true)
 * @Assert\Type(type="float", message="Must be a number.")
 */
private $fieldToValidate;

在控制器中的操作中:

$entity = $this->getService('my_service')->findMyEntity($entityId);
$editForm = $this->createForm(new MyEntityType(), $entity, $myOptions);
$request = $this->getRequest();
$editForm->bindRequest($request);
if ($editForm->isValid()){

当我在fieldToValidate(例如“foo”)中提交包含一些无效数据的表单时,得到了一个例外: Expected argument of type "numeric", "boolean" given 在控制器中调试我的代码我注意它提高了排除范围 $editForm->bindRequest($request); 如何使用$editForm->isValid()来控制异常。 不是为了这个我在模型和形式验证?

1 个答案:

答案 0 :(得分:1)

/**
 * @Assert\Regex(pattern="/\d+/")
 */