Drupal7.23 Webform模块发布字段无法添加至视图筛选条件的解决需求
解决Drupal 7 Webform发布字段无法添加到视图筛选的问题
我之前在Drupal 7里处理Webform的审核需求时,也碰到过一模一样的问题——自定义的管理员可见字段没法直接加到视图筛选里。其实核心原因是Webform的自定义组件数据不是存在节点表,而是单独存在webform_submitted_data表中,视图默认不会自动把这些组件当成可筛选字段。下面是我亲测有效的解决步骤:
步骤1:确认发布字段的机器名
首先你得先拿到这个“发布”下拉字段的机器名:
- 进入你的Webform节点编辑页面,切换到“Webform”标签页
- 找到“发布”字段,点击“编辑”
- 在编辑页面的URL里,你能看到类似
component=xxx的参数,xxx就是这个字段的机器名(比如publish_status),把它记下来。
步骤2:修改视图,添加Webform提交数据筛选
接下来调整你的视图配置:
- 打开你用来展示Webform提交内容的视图,确保视图的基础表选择的是
webform_submissions(Webform提交),而不是普通节点表 - 点击“添加”→“筛选条件”,在弹出的列表里找到Webform提交: 提交数据选项并选中
- 接下来会让你选择对应的Webform节点(就是你配置了姓名/邮箱/留言/发布字段的那个表单),选好后点击“继续”
- 然后选择你刚才记下的“发布”字段机器名,点击“继续”
- 最后设置筛选规则:比如你的下拉选项里“已发布”对应的键值是
1,就设置为“等于”→1,保存筛选条件
步骤3:验证功能
现在测试一下:
- 匿名用户提交表单时,因为看不到“发布”字段,提交的数据里这个字段会是默认值(比如
0代表草稿),所以不会出现在视图里 - 管理员进入Webform的“结果”→“表格”页面,找到对应的提交记录,编辑“发布”字段为“已发布”状态
- 刷新视图,这条提交内容就会正常展示了
额外提示
如果你的视图原本是基于节点表创建的,那得改成基于webform_submissions,因为Webform的提交数据和节点是分离的。另外,确保你用的Webform模块版本和Views 3.x是兼容的(Drupal 7.23搭配Webform 4.x版本是没问题的)。
内容的提问来源于stack exchange,提问作者user3386779
相关产品推荐
相关产品推荐

