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