2010-10-12 1 views
0

В администрировании, сгенерированном symfony, как переопределить метод executeIndex()?Переопределить executeIndex в модулях администратора

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

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

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

+0

Изменение getPager() работает, но страница администратора по-прежнему показывает пустую таблицу, с «37 результатов (стр 1/2)», вместо того чтобы сказать «нет результаты " – Manu

ответ

2

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

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

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

+0

" Вам может показаться хорошей идеей заглянуть в ваш кеш для автоматически сгенерированной версии «Я идиот, я не думал делать это ^^; – Manu

+0

Хех, не забудьте загрузить его в браузере/тестовом наборе, прежде чем вы задаетесь вопросом, почему его нет в папке с кешем ... там, сделали это (сегодня)! :-) – richsage

1
public function executeIndex(sfWebRequest $request) 
    { 
    parent::executeIndex($request); 

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

    } 
2

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

public function getPager() 
    { 
    $pager = parent::getPager(); 
    $pager->setQuery(Doctrine_Core::getTable('Content')->getListeByState('Published')); 
    return $pager; 
    }