0

在 symfony 生成的管理中,我如何覆盖方法 executeIndex() ?

我只想列出具有特定状态的项目,而我在 cache/backend/dev/modules/auto.../ 中找到的所有项目是:

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

如何更改寻呼机使用的查询?

4

4 回答 4

2

与覆盖现有类中的任何其他方法(例如configure()在表单中)的方式相同。打开apps/yourapp/yourmodule/actions/actions.class.php并添加:

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

您可能会发现在缓存中查找自动生成的版本是个好主意,然后在开始调整之前将所需的部分复制到覆盖的方法中 - 这为您提供了一个开始的工作基础。

于 2010-10-12T13:22:50.537 回答
2

类似于manu所说的。但我建议您使用 getPager 而不是 executeIndex。更好一点......但与manu的答案基本相同。

  public function getPager()
  {
     $pager = parent::getPager();
     $pager->setQuery(Doctrine_Core::getTable('Content')->getListeByState('Published'));
     return $pager;
  }
于 2010-10-12T15:06:54.390 回答
1

There's no need to ovveride action or templates just to filter your results. It's better to use table_method option in generator.yml See http://www.symfony-project.org/jobeet/1_4/Doctrine/en/12#chapter_12_sub_table_method

于 2010-10-13T10:03:01.833 回答
1
  public function executeIndex(sfWebRequest $request)
  {
     parent::executeIndex($request);

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

  }
于 2010-10-12T14:52:27.310 回答