質問

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'));

  }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top