【问题标题】:Drupal Views - Custom / Modded SQLDrupal 视图 - 自定义/修改的 SQL
【发布时间】:2011-06-29 07:18:27
【问题描述】:

我遇到了存储自定义配置文件字段逗号分隔的“配置文件复选框”模块的问题。

问题是我是否创建了一个按值过滤的视图。 SQL 结果最终是这样的:

...AND (profile_values_profile_interests.value in ('Business and Investment'))...

不会返回任何数据,因为值是这样存储的:

“商业与投资、判例法、劳动法、税法”

我只需要调整 SQL 以确保字段包含所选值

我可以做些什么来调整它吗?

【问题讨论】:

    标签: sql drupal views profile checkbox


    【解决方案1】:

    对于“快速破解”解决方案,您可以尝试在自定义模块中实现 hook_views_query_alter(&$view, &$query),检查 $view->name(最后还要检查 $view->current_display)以确保您处理的是正确的视图/显示,然后根据需要操作 $query。


    编辑:似乎模块维护者同时解决了潜在问题 - see John's answer ...

    【讨论】:

    • 太棒了!我以前从未创建过模块,但这很完美。谢谢!
    • 我遇到的一个问题是 ('%s') 的转换,如果我在查询中使用 LIKE %%s% 它不会转换。我该怎么做?
    • @kilrizzy:你需要escape every '%' that should not be replaced by adding another one in front of it,所以在你的例子中,LIKE %%%s%% 应该可以解决问题。
    • 太棒了,谢谢!我试图用 \ 来逃避它,效果很好
    • 虽然这确实有效,但缺点是站点中的每个视图都将通过 alter hook。
    【解决方案2】:

    我是Profile Checkboxes 的创建者和维护者,我认为您可能想知道新版本的模块现在将值存储为序列化并包括视图支持。该功能在当前发布版本中可用。

    【讨论】:

    • +1 - 听起来像是正确的解决方案。感谢您在这里指出这一点。
    • 谢谢约翰!也会检查新版本
    【解决方案3】:

    查看Views modify query 模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多