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?

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:


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.