Propel поведения i18n и архивируемые
Я использую Propel, и я установил два поведения на один из моих столов:
<behavior name="archivable" />
<behavior name="i18n">
<parameter name="i18n_columns" value="name" />
<parameter name="default_locale" value="de" />
</behavior>
Проблема в том, что если я заархивирую объект этой таблицы, то поле "имя" не сохраняется. Видимо, в методе "copyInto" базового класса нет
$copyObj->setName($this->getName());
Это ошибка в Propel или я что-то здесь упускаю?
1 ответ
Вы должны заархивировать информацию i18n вручную, сделав таблицу также архивируемой и переопределив сгенерированный метод archive(). Пример приведен в блоге Propel:
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);
}
}
источник: http://propel.posterous.com/introducing-archivable-behavior-and-why-softd