管理モジュールでexecuteIndexをオーバーライドします
-
29-09-2019 - |
質問
Symfonyによって生成された管理では、MethodExecuteIndex()をオーバーライドするにはどうすればよいですか?
特定の状態を持つアイテムのみをリストしたいのですが、キャッシュ/バックエンド/dev/modules/auto .../wasで見つけたものはすべてリストしたいと思います。
$this->pager = $this->getPager();
ページャーが使用するクエリを変更するにはどうすればよいですか?
解決
結果をフィルタリングするためだけに、アクションやテンプレートをOvverideまたはテンプレートする必要はありません。 generator.ymlでtable_methodオプションを使用する方が良いです http://www.symfony-project.org/jobeet/1_4/doctrine/en/12#chapter_12_sub_table_method
他のヒント
既存のクラスの他の方法をオーバーライドするのと同じ方法 configure()
形で。開いてください apps/yourapp/yourmodule/actions/actions.class.php
追加:
public function executeIndex(sfWebRequest $request)
{
// do whatever you want to here.
}
自動生成バージョンのキャッシュを調べ、必要な部分をオーバーライドされた方法にコピーすることをお勧めします。これにより、開始する作業ベースが得られます。
マヌが言っていることに似ています。ただし、ExecuteIndexではなく、Ride GetPagerを介してお勧めします。少し良いです...しかし、マヌーの答えと本質的に同じです。
public function getPager()
{
$pager = parent::getPager();
$pager->setQuery(Doctrine_Core::getTable('Content')->getListeByState('Published'));
return $pager;
}
public function executeIndex(sfWebRequest $request)
{
parent::executeIndex($request);
$this->pager->setQuery(Doctrine_Core::getTable('Content')->getListeByState('Published'));
}
所属していません StackOverflow