Puncte:0

Grupuri de condiții imbricate în pluginul de filtrare a vizualizărilor

drapel ni

Trebuie să cuibăresc câteva „grupuri unde” într-o interogare QueryPluginBase, dar pot cuibăra doar primul grup de adâncime în „unde” principal folosind setWhereGroup. Trebuie să adaug grupuri în alte grupuri, dar nu există o funcție care să o facă, deoarece setWhereGroup vă permite să adăugați un nou grup SAU/ȘI, dar nu pot seta ID-ul grupului părinte pe care aș dori să îl cuib. De exemplu, as avea nevoie de:

((Condiția 1 SAU Condiția 2) ȘI ( (Condiția 3 SAU Condiția 4) ȘI (Condiția 5 SAU Condiția 6) )) SAU (Condiția 7)

Acesta este pluginul meu personalizat de filtru de vizualizări:

spațiu de nume Drupal\modulul_meu\Plugin\views\filter;

utilizați Drupal\views\Plugin\views\filter\FilterPluginBase;
utilizați Drupal\views\Plugin\views\display\DisplayPluginBase;
utilizați Drupal\views\ViewExecutable;

/**
 * Filtrul meu personalizat
 *
 * @ingroup views_filter_handlers
 *
 * @ViewsFilter("my_custom_filter") 
 */
clasa MyCustomFilter extinde FilterPluginBase {

    /**
     * {@inheritdoc}
     */
    funcția publică init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) {
        parent::init($view, $display, $opțiuni);
        $this->valueTitle = t('Filtre agende utilizator');
    }

    interogare de funcție publică () {
      $this->query->setWhereGroup('OR', '90');
      $user_org = $user->field_usr_org;
      
      foreach ($user_org ca $org) {
         $this->query->addWhere('90', 'mytable.myfieldid', $org->target_id, '=');
      }

      $this->query->setWhereGroup('OR', '91');
      ....
    }
}  

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.