EntityFieldQuery ile özel içerik türünden COUNT (*) elde etmeye çalışılıyor


9

Drupal 7'deki bir sorgudan 'count (*)' değerini nasıl alabilirim? Sorgunun özel bir içerik türü ve özel bir alan içermesi gerekir.

notlar

  • Özel İçerik Türü: çalışanlar

  • Özel Alan Adı: field_employees_email

  • Not olarak, eklemek istiyorum

    NEREDE field_employees_email = 'example@example.com'

sorguya ...

Şimdiye kadar, şöyle bir şey var:

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

Ayrıca, daha kolay bir yolu var mı

$total = count($result); 

COUNT (*) sorgusundan dönmek için?

Yanıtlar:


13

EntityFieldQuery :: execute () belgelerinde bildirildiği gibi EntityFieldQuery :: count () kullanabilirsiniz .

[Sonuç] Ya count()çağrılırsa bir sayı ya da saplama varlıklarının ilişkilendirilebilir dizileri dizisi.

Kullanmanız gereken kod aşağıdakine benzer:

$query = new EntityFieldQuery;

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

Sonucu içerik türüne göre filtrelemek için EntityFieldQuery :: entityCondition ('bundle', $ content_type) kullanmanız gerekir .
Alanlardaki koşullar için, EntityFieldQuery :: fieldCondition () öğesini kullanmalısınız .


@Kiamlaluno fieldCondition aradığım şey. Bu yazı, başka herkes için de oldukça yararlı oldu: commerceguys.com/blog/checking-out-entityfieldquery
Citricguy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.