Tentativo di utilizzare EntityFieldQuery per trovare tutti i nodi con un campo di riferimento nodo non impostato


8

Dopo aver cercato lo snippet di codice più vicino che ho trovato è:

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

Questo troverà tutto dove il riferimento al nodo non è nullo. Ma se cambio !=a =non restituisce nulla. Ho provato tutte le combinazioni di valori che mi vengono in mente:

  • Passando NULLinvece di 'NULL'.
  • Passando dentro array()
  • Provando 1, "<"
  • "", "CONTAINS"
  • "", "="
  • 0, "="

Inoltre alcuni altri, provando solo tutte le combinazioni che mi vengono in mente.

Come posso farlo?

Risposte:


7

Per quanto folle possa sembrare, non puoi. Normalmente IS NULLuseresti l' operatore per farlo ma apparentemente non è supportato da EntityFieldQuery:

EntityFieldQuery non supporta isNull o isNotNull

Inoltre penso che EntityFieldQuery utilizzi internamente INNER JOIN, piuttosto che i LEFT JOINrecord che non hanno un valore nella tabella delle condizioni verrebbero comunque esclusi dai risultati della query. Il problema è stato segnalato più volte:


Ho finito per usare questo: drupal.org/node/1226622#comment-6809826 Grazie!
mikeytown2

Penso che questa sia stata la tua prima risposta su Drupal.SE ... +1 ora, circa 4 anni dopo ... E congratulazioni per aver colpito il rappresentante da 100 K !!!
Pierre.Vriens,

Saluti @ Pierre.Vriens, a quanto pare ho una maglietta;)
Clive

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.