1

Doctrine 实体在其成员字段上指定了独立于表单的验证元数据。Symfony2 的表单系统以某种方式使用实体提供的验证器。

这是如何运作的?是什么将这一切联系在一起?

我有一个非教义模型,我想在没有表单的情况下进行验证,但是当我使用表单时,他们应该使用该验证信息并正确显示它。所以我需要:

  • 在非教义对象上定义验证器
  • 定义没有注释的验证器
  • 允许模型在没有表单的情况下验证自己
  • 允许表单在非教义对象上使用验证器
4

1 回答 1

1

不确定它是否能处理您的情况(因为没有提供非教义实体的代码),但您可以对值和值数组使用 symfony 验证约束:

验证

作为验证数组中几个日期值的示例:

private function isInvalid($data)
{
    $response = array();
    $constraint = new Collection(array(
                'from'=>new Date(),
                'to'=>new Date(),
            ));

    $validationList = $this->get('validator')->validateValue($data, $constraint);

    if(count($validationList)>0) {
        foreach($validationList as $err) { 
            array_push($data,array(
                'field'=>$err->getPropertyPath(),
                'message'=>$err->getMessage(),
            ));
        }
        return $response;
    }
    return false;
}
于 2013-04-26T11:58:04.543 回答