Score:6

ฉันควรใช้วิธีใดแทน Drupal\Core\Entity\Query\Sql\Query::addExpression()

ธง my

ฉันใช้ Entity Query เพื่อเลือกโหนดของสองประเภทที่แตกต่างกัน ดูเหมือนว่าการดึงข้อมูลจะใช้งานได้ แต่ฉันจะเรียงลำดับค่าที่ส่งคืน เนื้อหาทั้งสองประเภทมีฟิลด์วันที่ต่างกัน ฉันรู้ว่าฉันสามารถทำได้ด้วย $query->addExpression('COALESCE(field_date_1, field_date_2)', 'วันที่'); $query->sort('วันที่', 'DESC'); แต่ เพิ่มนิพจน์ () ไม่ใช่วิธีการที่มีอยู่ และรหัสส่งข้อยกเว้นนี้

ข้อผิดพลาด: การเรียกไปยังเมธอดที่ไม่ได้กำหนด Drupal\Core\Entity\Query\Sql\Query::addExpression()

ฉันจะจัดเรียงช่องวันที่มากกว่า 2 ช่องได้อย่างไร

Score:6
ธง cn

ข้อความค้นหาเอนทิตีไม่รองรับนิพจน์ หากต้องการแก้ไข ให้เพิ่มแท็กในข้อความค้นหา:

$query->addTag('mymodule');

จากนั้นดำเนินการ hook_query_alter()ตรวจสอบแท็กและเพิ่มนิพจน์ที่นั่นแทน:

ฟังก์ชัน mymodule_query_alter (Drupal\Core\Database\Query\AlterableInterface $query) {
  ถ้า (อินสแตนซ์แบบสอบถาม $ ของ Drupal \ Core \ ฐานข้อมูล \ Query \ SelectInterface && $query->hasTag ('mymodule')) {
    $query->addExpression('...');
  }
}
Akansha avatar
my flag
ขอบคุณ มันใช้งานได้และ hook_query_TAG_alter() ก็ใช้งานได้ที่นี่เช่นกัน เพิ่มสำหรับการอ้างอิงในอนาคต

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา