尝试使用EntityFieldQuery从自定义内容类型获取COUNT(*)


9

如何从Drupal 7中的查询中检索“ count(*)”?查询需要包括自定义内容类型和自定义字段。

笔记

  • 自定义内容类型:员工

  • 自定义字段名称:field_employees_email

  • 作为说明,我希望添加

    在哪里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(*)?

Answers:


13

您可以使用EntityFieldQuery :: count(),如EntityFieldQuery :: execute()的文档中所述。

[结果是]如果count()调用了一个数字,或者是一个存根实体的关联数组。

您应使用的代码与以下代码相似:

$query = new EntityFieldQuery;

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

要按内容类型过滤结果,您需要使用EntityFieldQuery :: entityCondition('bundle',$ content_type)
对于字段的条件,应使用EntityFieldQuery :: fieldCondition()


谢谢@kiamlaluno fieldCondition是我一直在寻找的东西。这篇文章对其他搜索人也很有帮助:commerceguys.com/blog/checking-out-entityfieldquery
Citricguy 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.