Переопределить executeIndex в модулях администратора - PullRequest
0 голосов
/ 12 октября 2010

Как администрация, сгенерированная symfony, как переопределить метод executeIndex ()?

Я хочу перечислить только элементы, которые имеют определенное состояние, и все, что я нашел в кеше / бэкэнде / dev / modules / auto ... /, было:

$this->pager = $this->getPager();

Как изменить запрос, используемый пейджером?

Ответы [ 4 ]

2 голосов
/ 12 октября 2010

Похоже на то, что говорит Ману. Но я бы посоветовал вам переиграть getPager, а не executeIndex. Немного приятнее ... но по сути то же самое, что и ответ Ману.

  public function getPager()
  {
     $pager = parent::getPager();
     $pager->setQuery(Doctrine_Core::getTable('Content')->getListeByState('Published'));
     return $pager;
  }
2 голосов
/ 12 октября 2010

Так же, как вы переопределяете любые другие методы в существующих классах, например configure() в форме. Откройте apps/yourapp/yourmodule/actions/actions.class.php и добавьте:

public function executeIndex(sfWebRequest $request)
{
  // do whatever you want to here.
}

Возможно, вам будет полезно поискать в своем кэше автоматически сгенерированную версию и скопировать необходимые части из нее в переопределенный метод, прежде чем приступить к настройке - это даст вам рабочую базу для начала.

1 голос
/ 13 октября 2010

Нет необходимости переопределять действие или шаблоны только для фильтрации ваших результатов.Лучше использовать параметр table_method в generator.yml. См. http://www.symfony -project.org / jobeet / 1_4 / Doctrine / ru / 12 # chapter_12_sub_table_method

1 голос
/ 12 октября 2010
  public function executeIndex(sfWebRequest $request)
  {
     parent::executeIndex($request);

     $this->pager->setQuery(Doctrine_Core::getTable('Content')->getListeByState('Published'));

  }
...