Таблица some_type используется только для ограничения допустимых значений для foo.type значениями в some_table.type, и объект SomeType никогда не будет создан.Foo должно иметь свойство type, но не свойство someType.Если я удаляю <many-to-one target-entity="SomeType">...</many-to-one>, Foo#someType удаляется по желанию, но внешний ключ удаляется из схемы.Как мне указать Doctrine сохранить внешний ключ, но не генерировать Foo#someType?
some_type
foo.type
some_table.type
SomeType
Foo
type
someType
<many-to-one target-entity="SomeType">...</many-to-one>
Foo#someType
<?xml version="1.0" encoding="utf-8"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity name="SomeType" table="some_type"> <id name="type" type="string" column="type" length="8"/> </entity> </doctrine-mapping>
<?xml version="1.0" encoding="utf-8"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity name="Foo" table="foo"> <indexes> <index name="fk_foo_some_type_idx" columns="type"/> <index name="fk_foo_bar1_idx" columns="bar_id"/> </indexes> <id name="id" type="integer" column="id"> <generator strategy="IDENTITY"/> </id> <field name="type" type="string" column="type" length="8"/> <many-to-one target-entity="SomeType"> <join-columns> <join-column name="type" referenced-column-name="type"/> </join-columns> </many-to-one> <many-to-one field="bar" target-entity="Bar" inversed-by="foos" fetch="LAZY"> <join-columns> <join-column name="bar_id" referenced-column-name="id" nullable="false"/> </join-columns> </many-to-one> </entity> </doctrine-mapping>