3

symfony 1.4 / Doctrineのバックエンドには、日付、場所、年齢(およびモデルに応じてさらに多く)に従ってデータをフィルタリングできるツールがあります。

ここに画像の説明を入力してください

私は同じことをする方法を探しています(いくつかのフィールドを削除するなどのいくつかのカスタマイズを使用して)が、フロントエンドで。それを行う方法に関するドキュメントが見つかりませんでした

アイデアはありますか?

4

1 に答える 1

5

バックエンドで実行されるのとまったく同じように実行したい場合は、フロントエンドアプリケーションで管理ジェネレーターを使用できます。より一般的でカスタマイズ可能な方法は、リストとフィルターのアクションを作成し、Symfonyのフォームフィルターを使用することです。モデルクラス「Article」の基本的な例を次に示します。

アクションクラスの場合:

class articleActions extends sfActions
{
  public function executeList(sfWebRequest $request)
  {
    $this->form = new ArticleFormFilter();
    $this->pager = new sfDoctrinePager('Article');
  }

  public function executeFilter(sfWebRequest $request)
  {
    $this->form = new ArticleFormFilter();
    $this->form->bind($request[$this->form->getName()]);
    if ($this->form->isValid())
    {
      $this->pager = new sfDoctrinePager('Article');
      $this->pager->setQuery($this->form->getQuery());
      $this->setTemplate('list');
    }
    //handle invalid form here
  }
}

ビューでは、次のようにスローページャーを繰り返します。

 foreach($pager->getResults() as $article)

DoctrineFormFilterはDoctrineフォームにかなり似ています。FormFilter :: configure();内でフォームを構成することから始めます。

于 2010-09-22T00:50:31.540 に答える