Internationalization 推进行为i18n和可归档
我正在使用propel,在我的一张桌子上设置了两种行为:Internationalization 推进行为i18n和可归档,internationalization,archive,propel,Internationalization,Archive,Propel,我正在使用propel,在我的一张桌子上设置了两种行为: <behavior name="archivable" /> <behavior name="i18n"> <parameter name="i18n_columns" value="name" /> <parameter name="default_locale" value="de" /> </behavior> 这是propel中的一个bug还是我在这里遗漏了什么
<behavior name="archivable" />
<behavior name="i18n">
<parameter name="i18n_columns" value="name" />
<parameter name="default_locale" value="de" />
</behavior>
这是propel中的一个bug还是我在这里遗漏了什么?您必须手动归档i18n信息,方法是使表也可归档,并重写生成的archive()方法。推进博客中给出了一个示例:
class Book extends BaseBook
{
public function archive(PropelPDO $con = null)
{
// archive the book reviews
BookReviewQuery::create()
->filterByBook($this)
->archive($con);
// archive the current object
return parent::archive($con);
}
}
来源:这里只是一个猜测,但是
可归档
行为基于当前表为归档创建一个新表,并在保存/删除时将数据复制到其中。由于i18n
行为会创建一个新表并从所需表中删除列,archivable
将不会看到这些删除的列。我不认为有任何办法可以解决这个问题,但你可以克隆这种行为,并尝试让它发挥作用。
class Book extends BaseBook
{
public function archive(PropelPDO $con = null)
{
// archive the book reviews
BookReviewQuery::create()
->filterByBook($this)
->archive($con);
// archive the current object
return parent::archive($con);
}
}