2010-12-19 43 views
1

我无法通过i18n字段对我的管理生成器列表进行排序。由i18n字段对symfony admin-generator-list进行排序

有人给我使用的片段吗?作为排序依据的字段名称

的的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 
... 

回答

2

我用http://stereointeractive.com/blog/2011/01/08/symfony-1-4-admin-generator-sort-on-custom-column/

为了使这项工作为symfony1.2 1.4推进和国际化的列(在我的情况下,所谓的“名”)。

在你generator.yml补充:

  • 字段:名称:{is_real:真正}

  • 列表: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); 
    } 
} 
+0

随着Doctrine在actions.class.php中使用addSortQuery方法 – wdev 2012-04-13 14:30:17