Intentando obtener COUNT (*) del tipo de contenido personalizado con EntityFieldQuery


9

¿Cómo puedo recuperar el 'conteo (*)' de una consulta en drupal 7? La consulta debe incluir un tipo de contenido personalizado y un campo personalizado.

Notas

  • Tipo de contenido personalizado: empleados

  • Nombre de campo personalizado: field_employees_email

  • Como nota, estoy buscando agregar

    WHERE field_employees_email = 'ejemplo@ejemplo.com'

a la consulta ...

Hasta ahora, tengo algo como:

$query = new EntityFieldQuery;    

$result = $query
     ->entityCondition('entity_type', 'node')
     ->propertyCondition('status', 1) // Getting published nodes only.
     ->propertyCondition('type', 'employees') //Getting 'employees' type only.
     // How do I include custom field as part of query?
     ->execute();

Además, ¿hay una manera más fácil que

$total = count($result); 

devolver el COUNT (*) de la consulta?

Respuestas:


13

Puede usar EntityFieldQuery :: count () , como se informa en la documentación de EntityFieldQuery :: execute () .

[El resultado es] O bien un número si count()se llamó o una matriz de matrices asociativas de entidades de código auxiliar.

El código que debe usar es similar al siguiente:

$query = new EntityFieldQuery;

$count = $query->entityCondition('entity_type', 'node')
  ->entityCondition('bundle', 'employees')
  ->propertyCondition('status', 1) // Getting published nodes only.
  ->count()
  ->execute();

Para filtrar el resultado por tipo de contenido, debe usar EntityFieldQuery :: entityCondition ('bundle', $ content_type) .
Para las condiciones en los campos, debe usar EntityFieldQuery :: fieldCondition () .


Gracias @kiamlaluno fieldCondition es lo que estaba buscando. Esta publicación fue muy útil para cualquier otra persona que
busque
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.