2013-06-07 3 views
1

У меня есть src/SiteBundle, который расширяет поставщика/CoreBundle, и я хочу добавить модель/таблицу меток в schema.xml SiteBundle без дублирования схемы CoreBundle. XML. Вы не говорите ?! Ба!Propel 1.6 & Symfony 2: Наследование наследования и схемы наложения

Проблема возникает, если таблица «label» SiteBundle имеет внешний ключ (например, label.product_id), который указывает на таблицу, определенную в CoreBundle. Propel отказывается строить модель «label», потому что считает, что она имеет неразрешенную зависимость столбцов.

Есть ли способ контекстуализировать два файла schema.xml во время сборки, чтобы Propel понимал, что SiteBundle расширяет CoreBundle? Я предполагаю, что простое слияние schema.xml - это то, что я после ...

N.B. Я исследовал понятие Propel о наследовании схемы/модели, но ни одно из этих решений не соответствует этой проблеме.

ответ

0

Оказывается, что Propel Bundle действительно позволяет вам контекстуализировать файлы Schema.xml при построении времени, либо путем установки атрибута пакета обоих Schema.xml файлов в одно и то же

<database name="site" namespace="Site\Bundle\Model" package="default"> 
    ... 
</database> 

или путем установки

propel.namespace.autoPackage: true 

Документация по строительной документации Propel here.

Тем не менее, моя проблема на самом деле произошла из простого факта, что я неправильно понял, как метод переопределения пакетов Symfony2 getParent() работал. Моя проблема может быть максимально решена, оставив конфигурацию/схемы Propel в одиночку и через;

  • удаление метода SiteBundle :: getParent(), или;
  • prefixing файл schema.xml SiteBundle с чем-то (что-либо), чтобы Propel мог получить оба файла схемы, несмотря на переопределение getParent().
Смежные вопросы