Таблица для наследования классов в doctrine2 не создает таблицы должным образом

У меня есть такое наследование классов

 /**
 * @ORM\Entity
 * @ORM\Table(name = "persons")
 * @@ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name = "person_types", type = "string")
 * @ORM\DiscriminatorMap({
 *                        "insuree" = "Insuree",
 *                        "third_party" = "ThirdParty"
 *                      })
 */
abstract class Person {


/**
 * @ORM\Entity
 * @ORM\Table(name = "insurees")
 */
abstract class Insuree extends Person

/**
 * @ORM\Entity
 * @ORM\Table(name = "third_parties")
 */
final class ThirdParty extends Insuree {

Когда я выполнил schema: create, instad of doctrine создал столбец дискриминатора в классе Person, он создал таблицу лиц с полями, принадлежащими ему, и не более того, затем создал таблицу insurees с столбцами таблицы лиц и столбцами, принадлежащими сам, а затем создал таблицу third_parties со столбцами из таблиц person и insurees и столбцами, принадлежащими ему самому. Когда я выполнил EntityManager :: flush (), все столбцы из таблицы third_parties были заполнены, а обе другие таблицы были пустыми. Что мне не хватает? Я следил за документами с официального сайта доктрины и, кажется, все сделал правильно.

У вас есть тип в "@@ ORM \ InheritanceType (" JOINED ")", удалите двойной "@".

Jannes Botis 01.09.2018 22:15

@JannesBotis поставил это как ответ, я отмечу его как решенное. Мне стыдно, что я допустил эту опечатку и не заметил ее, даже проверяя код несколько раз. Спасибо, проблема решена!

Leandro Jacques 03.09.2018 04:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
391
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В Аннотация @InheritanceType есть опечатка:

@@ORM\InheritanceType("JOINED")

У вас есть двойной "@".

Это приводит к игнорированию аннотации.

Удалите один из символов «@».

Другие вопросы по теме