【发布时间】:2009-08-27 11:20:36
【问题描述】:
我需要在 Drupal 视图中的一些过滤器之间实现 OR 运算符。 默认情况下,Drupal 将每个过滤器合并在一起。
通过使用
hook_views_query_alter(&$view, &$query)
我可以访问查询 (var $query),我可以更改任何一个:
$query->where[0]['type']
到“或”,或
$query->group_operator
到“或”
但问题是,我不需要到处都是 OR。我尝试将它们分别更改为 OR,但并没有产生预期的结果。
似乎改变了这些值,把 OR 放在任何地方,而我需要 =>(过滤器 1 和过滤器 2)或(过滤器 3),所以只有 1 个或。
我可以只检查视图的查询,复制它,修改它,然后通过 db_query 运行它,但这很脏..
有什么建议吗?
提前致谢。
【问题讨论】:
-
作为第二个,还有使用查询alter来查看视图——我将尝试这条路线。 brianfending.com/content/…
-
查询更改是@Vodde 所指的“脏”,我们正在尝试通过 Views API 调用修改查询子句。
-
最好指定 Drupal 和 Views 版本。
标签: drupal drupal-views