Mencoba menggunakan EntityFieldQuery untuk menemukan semua node dengan bidang referensi simpul tidak disetel

8

Setelah beberapa pencarian, potongan kode terdekat yang saya temukan adalah:

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

Ini akan menemukan segala sesuatu di mana referensi simpul tidak nol. Tapi jika saya mengubah !=ke =itu mengembalikan apa-apa. Saya telah mencoba semua kombinasi nilai yang dapat saya pikirkan:

  • Melewati NULLbukannya 'NULL'.
  • Melewati array()
  • Mencoba 1, "<"
  • "", "CONTAINS"
  • "", "="
  • 0, "="

Ditambah lagi, hanya mencoba semua kombinasi yang dapat saya pikirkan.

Bagaimana saya bisa melakukan ini?

jmickela
sumber

Jawaban:

7

Meski terdengar gila, Anda tidak bisa. Biasanya Anda akan menggunakan IS NULLoperator untuk melakukan ini tetapi tampaknya tidak didukung oleh EntityFieldQuery:

EntityFieldQuery tidak mendukung isNull atau isNotNull

Juga saya pikir EntityFieldQuery menggunakan internal INNER JOIN, daripada LEFT JOINcatatan yang tidak memiliki nilai dalam tabel kondisi Anda akan dikecualikan dari hasil kueri pula. Masalah ini telah dilaporkan beberapa kali:

Clive
sumber
Saya akhirnya menggunakan ini: drupal.org/node/1226622#comment-6809826 Terima kasih!
mikeytown2
Saya pikir ini adalah jawaban pertama Anda di Drupal.SE ... +1 sekarang, sekitar 4 tahun kemudian ... Dan selamat telah memukul perwakilan 100 K !!!
Pierre.Vriens
Cheers @ Pierre.Vriens, ternyata saya mendapatkan t-shirt;)
Clive