Score:0

วิธีใช้แบบสอบถามมุมมองเปลี่ยนแปลงเพื่อแสดงเนื้อหาที่กรองตามแท็ก

ธง in

ฉันยังใหม่กับ Drupal และเริ่มเรียนรู้ hooks ฉันกำลังพยายามใช้ hook_views_query_alter เพื่อแสดงเนื้อหาที่เกี่ยวข้องแก่ผู้ใช้ตามแท็กที่ต้องการ

ฟังก์ชัน related_content_views_query_alter (ViewExecutable $view, QueryPluginBase $query) {
  ถ้า ($view->id() == 'filtered_content') {
    $user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
    $getPrefTags = $user->get('field_user_tags')->getValue();
    ถ้า (ว่าง ($getPrefTags)) กลับ;
    
    $prefTags = $getPrefTags[0]['target_id'];
    $nodeid = "node__field_tags.field_tags_target_id";
    $query->addWhere('',$nodeid,$prefTags,'=');
   }
}

ฟังก์ชันนี้รับค่าแท็กที่ผู้ใช้ต้องการจากโปรไฟล์แล้วใช้ เพิ่มที่ไหน () เพื่อแก้ไขแบบสอบถาม ปัญหาคือ ฟังก์ชันนี้ทำงานได้ดีหากผู้ใช้ป้อนแท็กเดียว แต่ฉันจะทำอย่างไรหากผู้ใช้ป้อนหลายแท็ก ฉันลองใช้ แบบสอบถาม->เพิ่มที่ไหน ในลูปเพื่อเพิ่มมูลค่าของ $getPrefTags[0] แต่มันไม่ทำงาน ฉันจะบรรลุสิ่งนี้ได้อย่างไร

cn flag
อาจทำได้ง่ายๆ แค่เปลี่ยน `$prefTags` เป็นอาร์เรย์และเปลี่ยน `=` เป็น `IN`

โพสต์คำตอบ

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