Score:0

วิธีเปลี่ยนการสืบค้นมุมมองวันที่สิ้นสุดสำหรับ API การค้นหา

ธง cn
blu

ฉันกำลังพยายามเปลี่ยนตัวกรองวันที่เปิดเผยในมุมมองที่ฉันสร้างขึ้นซึ่งใช้ Solr Search API ฉันสังเกตเห็นว่าตัวกรองวันที่สิ้นสุดไม่ทำงานเว้นแต่ฉันจะเพิ่มวันไปยังวันที่สิ้นสุด ตัวอย่างเช่น ถ้าฉันมีโหนดต่อไปนี้:

ชื่อ วันที่เริ่มต้น วันที่สิ้นสุด
01/01/2020 01/01/2021
02/01/2020 02/01/2022
03/01/2020 03/01/2023

และฉันใช้ตัวกรองที่เปิดเผยเพื่อส่งคืนวันที่สิ้นสุดของ 02/01/2022 ด้วยตัวดำเนินการน้อยกว่าหรือเท่ากับมันจะไม่ส่งคืนโหนด a และ b เว้นแต่ฉันจะเปลี่ยนวันที่สิ้นสุดเป็น 02/02/2022

ฉันติดอยู่กับการพยายามหาวิธีแก้ไข hook_views_query_alter() เพื่อเพิ่มเวลา (ฉันคิดว่านั่นคือสิ่งที่ผิด)

ฟังก์ชัน my_module_views_query_alter (ViewExecutable $view, QueryPluginBase $query) {
  ถ้า ($view->id() == 'my_solr_search' && !empty($view->exposed_raw_input['field_end_date'])) {
    $query->addWhere(0, 'field_end_date', $view->exposed_raw_input['field_end_date'] . '23:59', '<=');
  }
}

แก้ไข: เกือบจะใช้งานได้ตราบใดที่ไม่มีการป้อนข้อมูลในตัวกรองวันที่สิ้นสุดที่เปิดเผย แต่ฉันไม่สามารถมีได้เนื่องจากตัวกรองอาศัยการป้อนข้อมูลของผู้ใช้:

ฟังก์ชัน my_module_views_query_alter (ViewExecutable $view, QueryPluginBase $query) {
  ถ้า ($view->id() == 'my_solr_search' && !empty($view->exposed_raw_input['field_end_date'])) {
    // ฮาร์ดโค้ดวันที่สิ้นสุดเนื่องจากไม่มีการป้อนข้อมูล
    $end_date = DateTime::createFromFormat('m/d/Y H:i:s', $view->exposed_raw_input['field_end_date'] . ' 23:59:59');
    $group_id = $query->setWhereGroup('AND', NULL, 'where');
    $query->addWhere($group_id, 'field_end_date', $end_date->format("U"), '<=');
  }
}

โพสต์คำตอบ

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