我正在开发一个 Symfony 1.4 项目,需要自定义一个后端过滤器“name”,以便同时搜索“name_full”列和“name”列。
我想在我的 FormFilterClass 中这样做:
public function addNameColumnQuery(Doctrine_Query $query, $field, $value) {
$rootAlias = $query->getRootAlias();
return $query->where(''.$rootAlias.'.name LIKE ?', "%$value%")
->orWhere(''.$rootAlias.'.name_full LIKE ?', "%$value%");
}
但这不起作用,因为它给了我一个错误的结果集。而且我找不到可以转储完整 dql 以进行调试的文件。
请指出我可以在哪里转储完整的 dql,甚至告诉我我的方法有什么问题。
谢谢!
编辑:这是 Michal 建议并由我调整的正确功能:
public function addNameColumnQuery(Doctrine_Query $query, $field, $value)
{
$rootAlias = $query->getRootAlias();
return $query->addWhere(
''.$rootAlias.'.name LIKE ? OR '.$rootAlias.'.name_full LIKE ?',
array($value, $value)
);
}