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)

第二个:

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 回答