2013-04-26 109 views
1

原则实体具有在其成员字段上指定的验证元数据,而与表单无关。 Symfony2的表单系统以某种方式使用实体提供的验证器。Symfony2 - 我应该如何在我的非学说对象上实现验证?

这是如何工作的?什么把它们联系在一起?

我有一个非教条的模型,我想验证没有形式,但是当我使用的形式,它们应该是验证信息,并正确显示。所以,我需要:

  • 一个非教条对象上定义的验证
  • 定义验证没有标注
  • 允许模型来验证自身没有形式
  • 允许形式在非学说对象上使用验证器
+0

开始按照以下方式工作:http://symfony.com/doc/current/book/validation.html。关于主义实体对象并没有什么特别之处。他们只是普通的旧php对象,所以一切都应该在你的对象上工作得很好。验证器服务将允许验证表单之外的对象。您也可以深入验证组件文档。 – Cerad 2013-04-26 14:03:05

+0

并回答你的第一个问题:S2使用Resources/config/validation.yml文件默认情况下将事情联系在一起。 – Cerad 2013-04-26 14:05:22

回答

1

不知道,如果它处理你的情况(如提供非主义实体没有代码),但是你可以用价值观对价值观的symfony验证约束和数组:

Validation

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

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; 
} 
相关问题