EntityFieldQueryを使用して、ノード参照フィールドが設定されていないすべてのノードを検索しようとしています


8

私が見つけた最も近いコードスニペットをいくつか検索した後:

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

これにより、ノード参照がnullでないすべてのものが検索されます。しかし、に変更し!==も何も返されません。私は考えることができるすべての値の組み合わせを試しました:

  • NULL代わりに渡し'NULL'ます。
  • 渡す array()
  • やってみる 1, "<"
  • "", "CONTAINS"
  • "", "="
  • 0, "="

さらにいくつか考えて、考えられるすべての組み合わせを試してみてください。

どうすればこれを取り除くことができますか?

回答:


7

それが聞こえるかもしれないほどクレイジーですが、あなたはできません。通常、IS NULLこれを行うには演算子を使用しますが、EntityFieldQueryではサポートされていないようです。

EntityFieldQueryはisNullまたはisNotNullをサポートしていません

また、私はEntityFieldQueryが内部で使用すると思うINNER JOINのではなく、LEFT JOINあなたの条件テーブルに値を持たないレコードは、とにかくクエリ結果から除外されるようにします。この問題は数回報告されています。


私はこれを使用してしまいました:drupal.org/node/1226622#comment-6809826ありがとう!
mikeytown2 2013年

これはDrupal.SEでの最初の回答だったと思います... +1、約4年後...そして100 K担当者を達成できたことをお祝いします!!!
Pierre.Vriens

乾杯@ Pierre.Vriens、どうやら私はTシャツをもらいます;)
クライヴ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.