我无法通过i18n字段对管理生成器列表进行排序。
有人给我使用片段吗?要排序的字段是名称
schema.yml是:
...
product:
actAs:
I18n:
fields: [name, description]
columns:
product_typ_id: integer
name: string(255)
description: string
image: string(255)
image_thumb: string(255)
relations:
productTyp:
onDelete: SET NULL
...
答案 0 :(得分:3)
我使用了http://stereointeractive.com/blog/2011/01/08/symfony-1-4-admin-generator-sort-on-custom-column/
使用propel和I18N列(在我的情况下称为'name')使这对symfony 1.4有效。
在您的generator.yml中添加:
字段:name:{is_real:true}
list:peer_method:doSelectWithI18n
在你的actions.class.php中:
protected function isValidSortColumn($column)
{
return parent::isValidSortColumn($column) || $column == 'name';
}
和
protected function addSortCriteria($criteria)
{
if (array(null, null) == ($sort = $this->getSort()))
{
return;
}
if($sort[0]!="name") {
$column = MyPeer::translateFieldName($sort[0], BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_COLNAME);
} else {
$column = MyI18nPeer::NAME;
}
if ('asc' == $sort[1])
{
$criteria->addAscendingOrderByColumn($column);
}
else
{
$criteria->addDescendingOrderByColumn($column);
}
}