Спроба отримати COUNT (*) від користувацького типу вмісту за допомогою EntityFieldQuery


9

Як я можу отримати 'count (*)' з запиту в drupal 7? Запит повинен включати в себе спеціальний тип вмісту та спеціальне поле.

Примітки

  • Спеціальний тип вмісту: співробітники

  • Назва спеціального поля: field_employees_email

  • В якості замітки я хочу додати

    WHERE field_employees_email = 'example@example.com'

до запиту ...

Поки що у мене є щось на кшталт:

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

Також є простіший спосіб, ніж

$total = count($result); 

повернути COUNT (*) з запиту?

Відповіді:


13

Ви можете використовувати EntityFieldQuery :: count () , як повідомляється в документації для EntityFieldQuery :: Execute () .

[Результат] Або число, якщо count()було викликано, або масив асоціативних масивів об'єктів stub.

Код, який ви повинні використовувати, аналогічний наступному:

$query = new EntityFieldQuery;

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

Щоб фільтрувати результат за типом вмісту, вам потрібно використовувати EntityFieldQuery :: entitCondition ('пакет', $ content_type) .
Для умов на полях слід використовувати EntityFieldQuery :: fieldCondition () .


Дякую @kiamlaluno fieldCondition - це те, що я шукав. Ця публікація також була дуже корисною для всіх, хто шукає: commerceguys.com/blog/checking-out-entityfieldquery
Citricguy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.