กำลังพยายามรับ 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 :: นับ ()รายงานในเอกสารสำหรับEntityFieldQuery :: รัน ()

[ผลลัพธ์คือ] ทั้งตัวเลขถ้าcount()ถูกเรียกหรืออาร์เรย์ของอาร์เรย์เชื่อมโยงของเอนทิตีสตับ

รหัสที่คุณควรใช้คล้ายกับรหัสต่อไปนี้:

$query = new EntityFieldQuery;

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

เพื่อกรองผลโดยประเภทของเนื้อหาที่คุณจำเป็นต้องใช้EntityFieldQuery :: entityCondition ( 'มัด', $ content_type)
สำหรับเงื่อนไขในช่องที่คุณควรใช้EntityFieldQuery :: fieldCondition ()


ขอบคุณ @kiamlaluno fieldCondition คือสิ่งที่ฉันกำลังมองหา โพสต์นี้ค่อนข้างมีประโยชน์สำหรับทุกคนที่ค้นหาเช่นกัน: commerceguys.com/blog/checking-out-entityfieldquery
Citricguy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.