2011-08-10 32 views
4

我問了一個關於如何在Symfony2中加載自己的參數的最近問題,這裏的回答是How do you load config settings from the database in Symfony2?,但我現在需要知道如何在導入文件中實際訪問數據庫。如何在Symfony2中導入的參數文件中訪問Doctrine服務?

我已經嘗試使用:

$container->get('doctrine.orm.entity_manager'); 

不幸的是,我然後得到一個「服務定義doctrine.orm.entity_manager不存在。」錯誤。

任何人都可以幫忙嗎?

回答

3

你的代碼應該可以工作。

$this->container->get('doctrine.orm.entity_manager'); 

但前提主義啓用。

你有沒有內核的Doctrine Bundle?你有沒有註釋config.yml中的學說設置?

+0

嗨達米恩,感謝您的幫助。該軟件包在整個我的應用程序中進行設置和使在我的/app/config/config.yml文件中,我正在導入一個/app/config/parameters.php文件。在這個文件中,我希望能夠使用'$ container-> setParameter()'函數從數據庫加載一些參數。我不確定這個教條捆綁包是否已經被加載。有沒有其他的方式來提供我的設置從數據庫到我的整個應用程序? –

+1

好吧,我的答案是遠離那個。也許你可以嘗試在內核初始化後插入你的自定義配置?有一些事件可以像kernel.request(RequestListener :: onKernelRequest)一樣偵聽。 – Damien

+0

運行'php app/console container:debug'來檢查Doctrine2服務是否正在被加載,以及它是否被相應命名。 – Adrian

3

經過詢問,並且四處尋找,我發現在Symfony仍在配置其服務時訪問教義的唯一解決方案是使用this bundle。閱讀自述文件,因爲它描述了我們都遇到的情況的解決方案。

+0

嗨clan1234,抱歉沒有及時回覆。我已經離開了。感謝您的答覆。我會看看。 –

相關問題