Symfony2:包含来自另一个bundle的实体模型导致Doctrine错误


Symfony2 : Include entity model from another bundle cause Doctrine error

我在这里问,因为我在谷歌上找不到如何解决这个问题,也许有更多经验的人已经知道解决方案。

正如我在谷歌上看到的,有很多人有同样的问题(很多网页索引包含这个SF2错误)

所以我试图在我的控制器"使用"一个实体从另一个bundle,但我得到PHP错误:

Fatal error: Interface 'Persistent' not found in ~/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Item.php on line 17

我做错了什么当我包括我的实体从另一个捆绑"使用"?

use FOOBAR'InvoiceBundle'Entity'Invoice;
use FOOBAR'InvoiceBundle'Entity'Quote;
use FOOBAR'InvoiceBundle'Entity'Item;
class MembershipController extends BaseController          {
    /* do stuff */
}

当我在同一个实体包中使用这些实体时,这个问题不会发生。非常奇怪。

非常感谢大家,祝大家今天愉快!

我真惭愧,我在多个"use"上犯了一个错误,但我认为无论如何这个解决方案可能会帮助一些人。

use FOOBAR'InvoiceBundle'Entity'Invoice;
use FOOBAR'InvoiceBundle'Entity'Quote;
use FOOBAR'InvoiceBundle'Entity'Item;

在那些,我应该用"PaymentBundle"替换"InvoiceBundle"(因为InvoiceBundle甚至不存在…)

那么是什么导致了这个错误呢?在源代码的后面,我这样声明:

$item = new Item;

所以关于Propel1/Tests/Fixtures/Item.php我认为这是因为Symfony2试图调用该类中的Item文件,因为他找不到正确的"Item"类。