Doctrine2 -单表继承


Doctrine2 - Single Table Inheritance

我正试图将本教程应用于我的项目,但我没有得到它的工作。每次我尝试更新我的模式,我得到一个错误:无法在.....

中重新声明Rueckgrat'App'Models'ProjectSetting类

我有两个文件。第一个是projectsetting。php

namespace Rueckgrat'App'Models;
use Doctrine'Common'Collections'ArrayCollection;
use Doctrine'ORM'Mapping AS ORM;
/**
 * @ORM'Entity()
 * @ORM'Table(name="project_setting")
 * @ORM'HasLifecycleCallbacks()
 * @ORM'InheritanceType("SINGLE_TABLE")
 * @ORM'DiscriminatorColumn(name="is_production", type="integer")
 * @ORM'DiscriminatorMap({"0" = "ProjectCalculation", "1" = "ProjectSetting"})
 */
class ProjectSetting
{
// More code here
}

第二个是projectcalculation。php

namespace Rueckgrat'App'Models;
use Doctrine'ORM'Mapping AS ORM;
/**
 * @ORM'Entity
 */
class ProjectCalculation extends 'Rueckgrat'App'Models'ProjectSetting
{      
....
}

感谢任何帮助或提示。

更新:

完整的错误信息:致命错误:无法在/Applications/MAMP/htdocs/Rueckgrat/App/Models/ProjectSetting.php第17行重新声明类Rueckgrat'App'Models'ProjectSetting

我刚刚尝试了从原则文档的例子,只是分裂在两个实体文件,它不工作。然后我在ProjectSetting的文件中复制了ProjectCalculation类,它正在工作。

更新2:

我不能更新我的模式,但它是保存正确的鉴别符到project_setting表,当我保存一个ProjectCalculation实体。

这可能是您机器上PHP加速器的问题。请关闭APC或XCache(无论你有什么),重新启动PHP/Apache,然后再试一次。