Я пытаюсь применить это руководство к моему проекту, но оно у меня не работает. Каждый раз, когда я пытаюсь обновить свою схему, я получаю сообщение об ошибке: Неустранимая ошибка: невозможно повторно объявить класс 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.
class ProjectSetting
в любом другом файле? Второй вариант в объявлении DiscriminatorMap выглядит подозрительно. - person greg0ire   schedule 02.11.2011