我有一个扩展vendor / CoreBundle的src / SiteBundle,我想在SiteBundle schema.xml中添加一个“label”模型/表,而不复制CoreBundle schema.xml。没问题,你说?!呸!
如果SiteBundle“label”表具有指向CoreBundle中定义的表的外键(例如label.product_id),则会出现问题。 Propel拒绝构建“标签”模型,因为它认为它具有未解析的列依赖性。
有没有办法在构建时将两个schema.xml文件设置为上下文,以便Propel了解SiteBundle是否扩展了CoreBundle?我想一个简单的schema.xml合并就是我所追求的......
N.B。我已经研究过Propel关于模式/模型继承的概念,但这些解决方案都不适合这个问题。
答案 0 :(得分:0)
事实证明,Propel Bundle确实允许您在构建时将schema.xml文件置于上下文中,方法是将两个schema.xml文件的package属性设置为相同的东西
<database name="site" namespace="Site\Bundle\Model" package="default">
...
</database>
或通过设置
propel.namespace.autoPackage: true
推动构建属性文档here。
但是,我的问题实际上来自于一个简单的事实,我误解了Symfony2的包覆盖方法 getParent()是如何工作的。通过单独保留Propel配置/模式,可以最彻底地解决我的问题;