我正在尝试应用这个 tutorial到我的项目,但我没有让它工作。每次我尝试更新我的模式时,我都会收到错误消息: fatal error :无法在......中重新声明类 Rueckgrat\App\Models\ProjectSetting
我有 2 个文件。第一个是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
{
....
}
感谢任何帮助或提示。
更新:
完整错误信息: fatal error :无法在第 17 行的/Applications/MAMP/htdocs/Rueckgrat/app/models/ProjectSetting.php 中重新声明类 Rueckgrat\App\Models\ProjectSetting
我刚刚尝试了 Doctrine 文档中的示例,只是分成两个实体文件,但它不起作用。然后我在 ProjectSetting 的文件中复制了 ProjectCalculation 类,它正在工作。
更新 2:
我无法更新我的架构,但当我保存 ProjectCalculation 实体时,它会将正确的鉴别器保存到 project_setting 表中。
最佳答案
这可能是您机器上 PHP 加速器的问题。请关闭 APC 或 XCache(无论你有什么),重新启动 PHP/Apache,然后重试。
关于php - Doctrine2 - 单表继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7982080/