Symfony 如何检查条令中是否需要字段?

Symfony 如何检查条令中是否需要字段?,symfony,doctrine-orm,annotations,Symfony,Doctrine Orm,Annotations,我想从通过HTTP POST方式传递的数据中创建并保存一个实体 我如何从一个实体中登记所需的所有字段,以便我的REST API方法可以检查是否所有所需数据都已通过HTTP POST传递(以实现新创建的实体),并在缺少任何字段时发送错误响应(例如,“缺少所需的字段:”title“,”message“…)一种方法是对Symfony 2进行验证,就像Carlos Granados在评论中提到的那样。可能是更干净的解决方案 无论如何,要回答这个问题:您可以使用doctrinsClassMetadata检

我想从通过HTTP POST方式传递的数据中创建并保存一个实体


我如何从一个实体中登记所需的所有字段,以便我的REST API方法可以检查是否所有所需数据都已通过HTTP POST传递(以实现新创建的实体),并在缺少任何字段时发送错误响应(例如,“缺少所需的字段:”title“,”message“…)一种方法是对Symfony 2进行验证,就像Carlos Granados在评论中提到的那样。可能是更干净的解决方案

无论如何,要回答这个问题:您可以使用doctrins
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的注释,但您可能对利用validator service.Thx的建议是正确的。