在symfony生成的管理中,如何覆盖executeIndex()方法?
我想只列出具有特定状态的项目,以及我在cache / backend / dev / modules / auto ... /中找到的所有内容:
$this->pager = $this->getPager();
如何更改寻呼机使用的查询?
答案 0 :(得分:2)
与覆盖现有类中的任何其他方法的方式相同,例如表单中的configure()
。打开apps/yourapp/yourmodule/actions/actions.class.php
并添加:
public function executeIndex(sfWebRequest $request)
{
// do whatever you want to here.
}
在开始调整之前,您可能会发现在缓存中查找自动生成的版本并将所需的部分复制到覆盖的方法中是个好主意 - 这为您提供了一个可以开始的工作基础。
答案 1 :(得分:2)
类似于manu所说的。但我建议你覆盖get Pager而不是执行Index。有点好......但与manu的答案基本相同。
public function getPager()
{
$pager = parent::getPager();
$pager->setQuery(Doctrine_Core::getTable('Content')->getListeByState('Published'));
return $pager;
}
答案 2 :(得分:1)
public function executeIndex(sfWebRequest $request)
{
parent::executeIndex($request);
$this->pager->setQuery(Doctrine_Core::getTable('Content')->getListeByState('Published'));
}
答案 3 :(得分:1)
无需覆盖操作或模板,只是为了过滤结果。 最好在generator.yml中使用table方法选项 见http://www.symfony-project.org/jobeet/1_4/Doctrine/en/12#chapter_12_sub_table_method