0
我想从通过HTTP POST方式传递的数据创建并保存实体。如何检查教义是否需要字段?
如何从实体中获取所需的所有字段,以便我的REST API方法可以检查是否所有必需的数据都已通过HTTP POST(以完成新创建的实体),并发送响应如果缺少任何错误(例如“有缺少的字段是必需的:”标题“,”消息“...)?
我想从通过HTTP POST方式传递的数据创建并保存实体。如何检查教义是否需要字段?
如何从实体中获取所需的所有字段,以便我的REST API方法可以检查是否所有必需的数据都已通过HTTP POST(以完成新创建的实体),并发送响应如果缺少任何错误(例如“有缺少的字段是必需的:”标题“,”消息“...)?
一种方法是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;
}
}
阅读symfony的书 –
确定的验证章即可。我尝试阅读Doctrine的注释,但您可能正确使用验证器服务。 Thx为您的建议。 – forsberg