2012-10-16 61 views
0

我試圖從EntityManager的實例中檢索我的Doctrine實體的名稱空間。從EntityManager中檢索實體名稱空間

我可以設置命名空間如下:

$em = EntityManager::create($connectionOptions, $config); 
$sm = $em->getConnection()->getSchemaManager(); 
$driver = new \Doctrine\ORM\Mapping\Driver\DatabaseDriver($sm); 
$driver->setNamespace('My\Entities'); 
$em->getConfiguration()->setMetadataDriverImpl($driver); 

但是我無法恢復:

$em->getConfiguration()->getMetadataDriverImpl()->getNamespace(); 

PHP Fatal error: Call to undefined method Doctrine\ORM\Mapping\Driver\DatabaseDriver::getNamespace()

如果我搜索Doctrine/ORM/Mapping/Driver/DatabaseDriver.php我可以看到setNamespace()但不getNamespace(),和namespace屬性是私人的:(

如何從EntityManager的實例中檢索我的Doctrine實體的命名空間?

回答

0
$em->getConfiguration()->getEntityNamespaces(); 
+1

想要添加一些註釋嗎?也許是正確的答案,但添加一些評論將幫助OP和其他人更好地理解你的答案。 – Yaroslav

+0

嗯,該方法是存在的,但我得到一個'PHP通知:未定義的索引:Doctrine/ORM/Configuration.php中的199號行消息中的entityNamespaces。有一個'getEntityNamespace($ namespaceAlias)'方法,但它需要一個別名,如果我不提供它會失敗...... – Max

相關問題