Как изменить параметры фильтра администратора Symfony - PullRequest
1 голос
/ 16 мая 2011

У меня есть таблица / класс с именем ImportBundle. ImportBundle имеет флаг active, который может быть установлен в 1 или 0.

На одной из моих страниц администратора у меня есть поле выбора, показывающее все ImportBundle в моей базе данных. Я хотел бы видеть только активные.

Как мне это изменить?

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Хотите изменить активное значение по умолчанию, удалить активное поле или изменить базовый запрос?

Установить значение по умолчанию

Добавить getFilterDefaults метод к ImportBundleGeneratorConfiguration:

public function getFilterDefaults()
{
  return array('active' => true);
}

Удалить поле

Либо удалите поле из фильтра в ImportBundleFormFilter, либо измените параметр display под заголовком filter generator.yml. Если ImportBundleFormFilter используется в другом месте, вам может потребоваться расширить его, чтобы сбросить поле.

Изменить запрос

Установите параметр table_method в generator.yml или на самом фильтре. Смотрите дополнительные инструкции здесь .

0 голосов
/ 17 мая 2011

Если ваше поле выбора является sfWidgetFormDoctrineChoice, то вы должны установить опцию table_method.

Например, если у вас есть Модель с отношением «многие ко многим» к Связанному:

class ModelFormFilter extends BaseModelFormFilter
{
  public function configure()
  {
    $this->getWidget('related_list')->setOption('table_method', 'getActive');
  }
}

class RelatedTable extends Doctrine_Table
{  
  public function getActive()
  {
    return $this->createQuery('r')
      ->where('r.is_active = ?', true)
      ->execute();
  }
}
...