2015-10-26 37 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; 
    } 
} 
相關問題