尝试使用EntityFieldQuery查找未设置节点引用字段的所有节点


8

经过一些搜索后,我发现最接近的代码片段是:

->fieldCondition('field_name_ref', 'nid', 'NULL', '!=');

这将找到节点引用不为空的所有内容。但是,如果我更改!==它,则不会返回任何内容。我已经尝试过所有可以想到的值组合:

  • 传递NULL而不是'NULL'
  • 传入 array()
  • 1, "<"
  • "", "CONTAINS"
  • "", "="
  • 0, "="

再加上其他一些,只需尝试我能想到的所有组合即可。

我怎样才能做到这一点?

Answers:


7

听起来听起来很疯狂,但您不能。通常,您会使用IS NULL运算符来执行此操作,但是EntityFieldQuery显然不支持此操作:

EntityFieldQuery不支持isNull或isNotNull

另外,我认为EntityFieldQuery在内部使用INNER JOIN,而不是LEFT JOIN在条件表中没有值的记录将始终从查询结果中排除。已多次报告此问题:


我最终使用了这个:drupal.org/node/1226622#comment-6809826谢谢!
mikeytown2

我认为这是您对Drupal.SE的第一个答案。大约四年后,现在+1。并且恭喜您达到了10万名!!!
Pierre.Vriens

干杯@ Pierre.Vriens,显然我得到了一件T恤;)
Clive

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.