我和我的同事使用Symfony2和Propel1编写了十几个web应用程序。我们现在正在尝试使用Propel2,但在将应用程序从Propel1迁移到Propel2时遇到以下问题:
在我们的简单模式中,父对象Auteur
(author)拥有子对象Livre
(book)的集合。我们使用Symfony表单创建Auteur
和Livres
对象的集合。在本例中,Auteur
和Livres
被正确地保存在数据库中。
但是,当更新 Auteur
对象而不触及Livres
的集合时,将清空。
我们无法确定这是Propel2(或者更不可能是Symfony2)中的错误,还是我们做的事情不正确。几乎相同的代码(有些适应于Propel1)没有问题:Livres
集合是而不是在Auteur
更新时清空。
我们已经发布了一个重现这个问题的最小项目。要使用Propel2进行测试,请执行:
git clone https://github.com/spyrit/MinimalS2P2.git
cd MinimalS2P2
composer install
app/console propel:build
app/console propel:migration:diff
app/console propel:migration:migrate
要用Propel1测试它,使用To propel1
分支:
git checkout propel1
composer install
app/console propel:build
app/console propel:migration:generate-diff
app/console propel:migration:migrate
这个方法是正确的,但是Propel2中有一个bug导致了这个问题。
在https://github.com/propelorm/Propel2/pull/1027