Tentativo di ottenere COUNT (*) dal tipo di contenuto personalizzato con EntityFieldQuery


9

Come posso recuperare il 'count (*)' da una query in drupal 7? La query deve includere un tipo di contenuto personalizzato e un campo personalizzato.

Appunti

  • Tipo di contenuto personalizzato: dipendenti

  • Nome campo personalizzato: field_employees_email

  • Come nota, sto cercando di aggiungere

    DOVE field_employees_email = 'esempio@esempio.com'

alla query ...

Finora ho qualcosa del tipo:

$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();

Inoltre, c'è un modo più semplice di

$total = count($result); 

restituire il COUNT (*) dalla query?

Risposte:


13

È possibile utilizzare EntityFieldQuery :: count () , come riportato nella documentazione per EntityFieldQuery :: execute () .

[Il risultato è] O un numero se è count()stato chiamato o una matrice di matrici associative di entità stub.

Il codice che dovresti usare è simile al seguente:

$query = new EntityFieldQuery;

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

Per filtrare il risultato in base al tipo di contenuto, è necessario utilizzare EntityFieldQuery :: entityCondition ('bundle', $ content_type) .
Per le condizioni sui campi, è necessario utilizzare EntityFieldQuery :: fieldCondition () .


Grazie @kiamlaluno fieldCondition è quello che stavo cercando. Questo post è stato molto utile anche per chiunque
stia
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.