Сортировать список админ-генератора symfony по полю i18n - PullRequest
2 голосов
/ 19 декабря 2010

У меня проблемы с сортировкой списка администраторов-генераторов по полю 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
...

1 Ответ

3 голосов
/ 10 марта 2011

Я использовал http://stereointeractive.com/blog/2011/01/08/symfony-1-4-admin-generator-sort-on-custom-column/

, чтобы сделать это для Symfony 1.4 с Propel и столбцом I18N (в моем случае это называется «имя»).

В вашем генераторе.yml add:

  • поля: имя: {is_real: true}

  • список: 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);
    }
}
...