EntityFieldQueryを使用してカスタムコンテンツタイプからCOUNT(*)を取得しようとしています


9

drupal 7のクエリから「count(*)」を取得するにはどうすればよいですか?クエリには、カスタムコンテンツタイプとカスタムフィールドを含める必要があります。

ノート

  • カスタムコンテンツタイプ:従業員

  • カスタムフィールド名: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 :: execute()のドキュメントで報告されているように、EntityFieldQuery :: count()を使用できます。

[結果は次のとおりです] 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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.