Php Symfony自定义过滤器

Php Symfony自定义过滤器,php,filter,symfony-1.4,Php,Filter,Symfony 1.4,我有下面的代码添加了一个非相关模型的自定义过滤器,但我无法让它进行过滤。谁能给我指一下正确的方向吗 public function addLanguagesColumnQuery($query, $field, $value) { $rootAlias = $query->getRootAlias(); $query->andWhereIn($rootAlias.'.journalist_id IN (SELECT journalist_id FROM journalist_

我有下面的代码添加了一个非相关模型的自定义过滤器,但我无法让它进行过滤。谁能给我指一下正确的方向吗

public function addLanguagesColumnQuery($query, $field, $value)
{
  $rootAlias = $query->getRootAlias();
  $query->andWhereIn($rootAlias.'.journalist_id IN (SELECT journalist_id FROM journalist_language where language_id IN ('.implode(",", array_filter($value, 'strlen')).')');
  return $query;
}
你的模式是什么

我认为问题来自您用于子查询的表名。您应该使用条令名称,而不是数据库中的名称

因此,尝试使用
新闻语言
(或在您的模式中定义的语言)而不是
新闻语言

您的模式是什么

我认为问题来自您用于子查询的表名。您应该使用条令名称,而不是数据库中的名称


因此,尝试使用
newalistlanguage
(或在模式中定义的语言)而不是
newister\u language

新闻组织:列:组织id:{type:integer,notnull:true}新闻工作者id:{type:integer,notnull:true}就业id:{type:integer,notnull:true}发现很难发布整个模式用模式的相关部分更新了您的问题:例如
newister\u language
表。我成功地对查询$rootAlias=$query->getRootAlias()进行了排序;$query->innerJoin($rootAlias.'.sfGuardUser u');$query->innerJoin('u.newalistlanguage j');$query->andwhere('j.language_id',array_filter($value,'strlen');返回$query;新闻组织:列:组织id:{type:integer,notnull:true}记者id:{type:integer,notnull:true}就业id:{type:integer,notnull:true}发现很难发布整个模式用模式的相关部分更新了您的问题:例如
newister\u language
表。我成功地对查询$rootAlias=$query->getRootAlias()进行了排序;$query->innerJoin($rootAlias.'.sfGuardUser u');$query->innerJoin('u.newalistlanguage j');$query->andwhere('j.language_id',array_filter($value,'strlen');返回$query;