Intentando usar EntityFieldQuery para encontrar todos los nodos con un campo de referencia de nodo no establecido


8

Después de buscar un poco el fragmento de código más cercano que he encontrado es:

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

Esto encontrará todo donde la referencia de nodo no sea nula. Pero si cambio el !=a =no devuelve nada. He probado todas las combinaciones de valores que se me ocurren:

  • Pasando en NULLlugar de 'NULL'.
  • Pasando array()
  • Molesto 1, "<"
  • "", "CONTAINS"
  • "", "="
  • 0, "="

Además de algunos más, solo probando todas las combinaciones que se me ocurren.

¿Cómo puedo lograr esto?

Respuestas:


7

Por loco que parezca, no puedes. Normalmente usaría el IS NULLoperador para hacer esto, pero aparentemente no es compatible con EntityFieldQuery:

EntityFieldQuery no admite isNull o isNotNull

También creo que EntityFieldQuery usa internamente INNER JOIN, en lugar de LEFT JOINeso, los registros que no tienen un valor en su tabla de condiciones se excluirían de los resultados de la consulta de todos modos. El problema ha sido reportado varias veces:


Terminé usando esto: drupal.org/node/1226622#comment-6809826 ¡Gracias!
mikeytown2

Creo que esta fue su primera respuesta en Drupal.SE ... +1 ahora, unos 4 años después ... ¡¡¡Y felicidades por alcanzar el representante de 100 K !!!
Pierre.Vriens

Saludos @ Pierre.Vriens, aparentemente recibo una camiseta;)
Clive

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.