Score:0

กลุ่มเงื่อนไขที่ซ้อนกันในปลั๊กอินตัวกรองมุมมอง

ธง ni

ฉันต้องซ้อน "where Groups" บางส่วนใน QueryPluginBase แต่ฉันสามารถซ้อนกลุ่มเชิงลึกกลุ่มแรกกับ "where" หลักโดยใช้ setWhereGroup. ฉันต้องการเพิ่มกลุ่มในกลุ่มอื่น แต่ไม่มีฟังก์ชันที่จะทำได้เนื่องจาก setWhereGroup ให้คุณเพิ่มกลุ่ม OR/AND ใหม่ แต่ฉันไม่สามารถตั้งค่า ID กลุ่มหลักที่ฉันต้องการซ้อนได้ ตัวอย่างเช่น ฉันต้องการ:

((เงื่อนไขที่ 1 หรือเงื่อนไขที่ 2) และ ( (เงื่อนไขที่ 3 หรือเงื่อนไขที่ 4) และ (เงื่อนไขที่ 5 หรือเงื่อนไขที่ 6) )) หรือ (เงื่อนไขที่ 7)

นี่คือปลั๊กอินตัวกรองมุมมองที่กำหนดเองของฉัน:

เนมสเปซ Drupal\my_module\Plugin\views\filter;

ใช้ Drupal\views\Plugin\views\filter\FilterPluginBase;
ใช้ Drupal\views\Plugin\views\display\DisplayPluginBase;
ใช้ Drupal\views\ViewExecutable;

/**
 * ตัวกรองที่กำหนดเองของฉัน
 *
 * @ingroup views_filter_handlers
 *
 * @ViewsFilter("my_custom_filter") 
 */
คลาส MyCustomFilter ขยาย FilterPluginBase {

    /**
     * {@inheritdoc}
     */
    init ฟังก์ชันสาธารณะ (ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) {
        parent::init($view,$display,$options);
        $this->valueTitle = t('กรองวาระ usuario');
    }

    แบบสอบถามฟังก์ชันสาธารณะ () {
      $this->query->setWhereGroup('หรือ', '90');
      $user_org = $user->field_usr_org;
      
      foreach ($user_org เป็น $org) {
         $this->query->addWhere('90', 'mytable.myfieldid', $org->target_id, '=');
      }

      $this->query->setWhereGroup('หรือ', '91');
      ....
    }
}  

โพสต์คำตอบ

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