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

マヌーが言うことに似ています。ただし、executeIndexではなくgetPagerをオーバーライドすることをお勧めします。少しいいです...しかし、本質的にマヌーの答えと同じです。

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

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

  }
于 2010-10-12T14:52:27.310 に答える
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 に答える