0

私は管理ジェネレーターモジュールに取り組んでいます。ユーザーがフィルターを使用するまでアイテムリストを非表示にしたいと思います。フィルターフォームが送信されたかどうかを確認したいと思います。

indexSuccess.phpテンプレートでこれを確認できる変数はありますか?

4

1 に答える 1

2

ユーザーがフィルタを送信すると、フィルタはセッション内に保存されます。

したがって、テンプレートでは、セッションを呼び出して定義済みのフィルターにアクセスできます。デフォルト フィルターがない場合は、空の配列が返されます (sfOutputEscaperArrayDecorator出力保護を使用している場合)。

モジュール名がcarたとえばの場合、次を使用してテンプレート内でフィルターを取得できます。

$filters = $sf_user->getAttribute('car.filters', null, 'admin_module');

また、出力保護を使用する場合は、次のことができます。

$filters = sfOutputEscaper::unescape($sf_user->getAttribute('car.filters', null, 'admin_module'));

フィルターがない場合は、var_dump(最初のソリューションを使用して) 次のような結果が得られます。

object(sfOutputEscaperArrayDecorator)[181]
  private 'count' => int 0
  protected 'value' => 
    array
      empty
  protected 'escapingMethod' => string 'esc_specialchars' (length=16)

そして2番目:

array
  empty

たとえば、いくつかのフィルターを定義すると、次のようになります。

array
  'model' => 
    array
      'text' => string 'test' (length=4)
  'updated_at' => 
    array
      'from' => null
      'to' => null
  'created_at' => 
    array
      'from' => null
      'to' => null
于 2012-10-16T12:11:33.903 に答える