Я пытаюсь выяснить, как правильно отобразить мои объекты, так что я могу сделать Doctrine 2 класса Таблица наследования (Doc here)Doctrine 2 класс отображение Heritance
Так что я попробовал много различных решений, но я не могу для проверки моей модели с помощью инструмента командной строки (doctrine: schema: validate)
Итак, вот что я попробовал. Я не изменяю родительский класс, поэтому я оставлю его здесь.
Api\TestBundle\Entity\Item:
type: entity
table: items
inheritanceType: JOINED
discriminatorColumn:
name: type
type: string
nullable: false
length: 32
fixed: false
comment: ''
discriminatorMap:
item_property_facebook: ItemPropertyFacebook
id:
id:
type: integer
nullable: false
unsigned: false
comment: ''
id: true
generator:
strategy: AUTO
fields:
bundledType:
type: string
nullable: false
length: 32
fixed: false
comment: ''
column: bundled_type
lifecycleCallbacks: { }
И дочернего класса, я поставил другой идентификатор в первом:
Api\TestBundle\Entity\ItemPropertyFacebook:
type: entity
table: item_property_facebook
id:
id:
type: integer
nullable: false
unsigned: false
comment: ''
id: true
generator:
strategy: AUTO
fields:
account_id:
type: integer
lifecycleCallbacks: { }
Очевидно, что я получаю:
Duplicate definition of column 'id' on entity 'Api\TestBundle\Entity
\ItemPropertyFacebook' in a field or discriminator column mapping.
Так что я пытаюсь удалить идентификатор определение у ребенка, и я получаю:
No identifier/primary key specified for Entity "Api\TestBundle\Entit
y\ReferenceItemPropertyFacebook". Every Entity must have an identifier/prim
ary key.
Поэтому я совершенно не понимаю. В докторе они просто устанавливают основные вещи, но не идентификатор, и я не могу найти что-либо в сети, потому что я, вероятно, не сформулировал его хорошо. Я читал о associationKey, но когда я попробовал это, Doctrine сказать мне то же
No identifier/primary key specified for Entity "Api\TestBundle\Entit
y\ReferenceItemPropertyFacebook". Every Entity must have an identifier/prim
ary key.
Так что если у вас есть какие-либо подсказки, я был бы признателен. Большое спасибо!
Вы расширили класс в классе ItemPropertyFacebook? В любом случае вы должны удалить свойство id в своем дочернем классе. – RSez
Да, мой класс ItemPropertyFacebook extends Item –