2015-10-26 46 views
0

我想从通过HTTP POST方式传递的数据创建并保存实体。如何检查教义是否需要字段?

如何从实体中获取所需的所有字段,以便我的REST API方法可以检查是否所有必需的数据都已通过HTTP POST(以完成新创建的实体),并发送响应如果缺少任何错误(例如“有缺少的字段是必需的:”标题“,”消息“...)?

+1

阅读symfony的书 –

+0

确定的验证章即可。我尝试阅读Doctrine的注释,但您可能正确使用验证器服务。 Thx为您的建议。 – forsberg

回答

1

一种方法是Symfony 2的验证,如Carlos Granados在可能是更清洁的解决方案

无论如何,回答这个问题:您可以使用Doctrines ClassMetadata来检查字段是否可以为空:

$metadata = $entityManager->getClassMetadata('My\Entity\Class'); 
$isRequired = !$metadata->isNullable("myField"); 

,并把这个在一个循环中获得所有所需的字段:

$metadata = $em->getClassMetadata('Application\Entity\Task'); 
$fieldNames = $metadata->getFieldNames(); 
$required = array(); 
foreach ($fieldNames as $fieldName) { 
    if(!$metadata->isNullable($fieldName)) { 
     $required[] = $fieldName; 
    } 
}