Comment puis-je récupérer le 'count (*)' d'une requête dans drupal 7? La requête doit inclure un type de contenu personnalisé et un champ personnalisé.
Remarques
Type de contenu personnalisé: employés
Nom de champ personnalisé: field_employees_email
En tant que note, je cherche à ajouter
WHERE field_employees_email = '[email protected]'
à la requête ...
Jusqu'à présent, j'ai quelque chose comme:
$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();
Existe-t-il également un moyen plus simple
$total = count($result);
renvoyer le COUNT (*) de la requête?
Vous pouvez utiliser EntityFieldQuery :: count () , comme indiqué dans la documentation pour EntityFieldQuery :: execute () .
[Le résultat est] Soit un nombre si
count()
a été appelé, soit un tableau de tableaux associatifs d'entités de stub.
Le code que vous devez utiliser est similaire au suivant:
$query = new EntityFieldQuery;
$count = $query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'employees')
->propertyCondition('status', 1) // Getting published nodes only.
->count()
->execute();
Pour filtrer le résultat par type de contenu, vous devez utiliser EntityFieldQuery :: entityCondition ('bundle', $ content_type) .
Pour les conditions sur les champs, vous devez utiliser EntityFieldQuery :: fieldCondition () .