drupal 7 – ¿Obtiene solo algunos campos con EntityFieldQuery?

Pregunta:

Drupal 7 tiene un sistema de consultas similar a ORM muy prometedor con EntityFieldQuery.

Actualmente, entiendo cómo hacer una selección de nodos, pero el resultado no contiene ninguna información específica, como los archivos que estoy buscando.

$query = new EntityFieldQuery();
$entities = $query->entityCondition('entity_type', 'node')
                        ->entityCondition('bundle', 'event')
                        ->propertyCondition('status', 1)
                        ->fieldCondition('field_date', 'value', array('2011-03-01', '2011-03-31'), 'BETWEEN')
                        ->fieldOrderBy('field_date', 'value', 'ASC')
                        ->execute();

Entonces, necesitamos cargar datos completos de los nodos, si quisiéramos obtener solo los valores de un campo, por ejemplo, 'field_date' en el ejemplo actual.

$nodes = entity_load('node', array_keys($entities['node']));

Si hay una manera de obtener el valor de los campos, en su lugar, cargue los datos completos de todos los nodos, ya que provoca cierta sobrecarga de memoria.

$nodesFieldDates = ???

Respuesta:

¡Gran pregunta!

EntityFieldQuery es realmente bueno, pero si realmente quiere ponerse serio, debe anular la clase en un módulo personalizado y agregar cualquier comportamiento que necesite.

No sé sus intenciones exactas, pero me he referido a este artículo sobre el tema en el pasado. Créditos a Neil Hastings por este artículo bien escrito.

Busque ejemplos de código un poco en el artículo para obtener buenos ejemplos de superposición.

Espero que te ayude, ¡feliz codificación!

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım