Php Symfony 1.4-如何在表\u方法中使用后端筛选器?

Php Symfony 1.4-如何在表\u方法中使用后端筛选器?,php,symfony1,symfony-1.4,filtering,Php,Symfony1,Symfony 1.4,Filtering,我想在我的table_方法中使用自定义过滤器来扩展查询。不幸的是,我不知道如何从方法中访问字段的值。我使用的是SF 1.4/w原则1.2,我认为您必须更改doBuildQuery FilterPerform方法 在任何FilterPerform类中,您都可以执行以下操作: public doBuildQuery(array $values) { $q = parent::doBuildQuery($values); if($values['....']) ... {

我想在我的table_方法中使用自定义过滤器来扩展查询。不幸的是,我不知道如何从方法中访问字段的值。我使用的是SF 1.4/w原则1.2,我认为您必须更改doBuildQuery FilterPerform方法

在任何FilterPerform类中,您都可以执行以下操作:

public doBuildQuery(array $values) {
    $q = parent::doBuildQuery($values);

    if($values['....']) ... {
       $q->addWhere($q->getRootAlias().".column = ?",$values['...']);
    }

    return $q; 
}

此方法是从后端生成的模块中自动调用的方法。如果要添加另一个小部件,请在configure()方法中执行,然后在doBuildQuery()中处理该值。

我认为您必须更改doBuildQuery filterForm方法

在任何FilterPerform类中,您都可以执行以下操作:

public doBuildQuery(array $values) {
    $q = parent::doBuildQuery($values);

    if($values['....']) ... {
       $q->addWhere($q->getRootAlias().".column = ?",$values['...']);
    }

    return $q; 
}

此方法是从后端生成的模块中自动调用的方法。如果您想添加另一个小部件,请在configure()方法中执行,然后在doBuildQuery()中处理该值。

如果您的意思是将自定义字段添加到筛选表单中,您应该阅读例如……是的,我基本上就是这么做的。但过滤器不会自动应用于列表。因此,我想使用自定义过滤器字段中的值修改列表查询。我不知道如何从table_方法中访问此值。您可以在filter form类中设置字段的默认值,或使用generator configuration类中的
getFilterDefaults()
函数设置筛选器表单的默认值(返回类似于
array('field_name'=>'default_value')的数组
)。过滤器将自动应用于action类的
buildQuery()
方法中的基本查询。您可能需要清除会话以使其生效。如果您的意思是将自定义字段添加到筛选表单,您应该阅读例如…是的,这基本上就是我所做的。但过滤器不会自动应用于列表。因此,我想使用自定义过滤器字段中的值修改列表查询。我不知道如何从table_方法中访问此值。您可以在filter form类中设置字段的默认值,或使用generator configuration类中的
getFilterDefaults()
函数设置筛选器表单的默认值(返回类似于
array('field_name'=>'default_value')的数组
)。过滤器将自动应用于action类的
buildQuery()
方法中的基本查询。您可能需要清除会话才能使其生效。