Doctrine2 - наследование одной таблицы - PullRequest
3 голосов
/ 02 ноября 2011

Я пытаюсь применить этот учебник к моему проекту, но у меня не получается.Каждый раз, когда я пытаюсь обновить свою схему, я получаю сообщение об ошибке: Неустранимая ошибка: Невозможно повторно объявить класс 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
{      
....
}

Любая помощь или подсказка приветствуются.

Обновление:

Полное сообщение об ошибке: неустранимая ошибка: невозможно переопределить класс Rueckgrat \ App \ Models \ ProjectSetting в /Applications/MAMP/htdocs/Rueckgrat/app/models/ProjectSetting.php в строке 17

Я только что попробовал пример из документации Doctrine, просто разделенный на два файла сущностей, и он не работает.Затем я скопировал класс ProjectCalculation в файл ProjectSetting, и он работает.

Обновление 2:

Я не могу обновить мою схему, но она сохраняет правильный дискриминатор в таблице project_setting, когда я сохраняю объект ProjectCalculation.

1 Ответ

1 голос
/ 18 ноября 2011

Это может быть проблема с PHP-ускорителем на вашем компьютере.Пожалуйста, выключите APC или XCache (все, что у вас есть), перезапустите PHP / Apache и попробуйте снова.

...