Viewsクエリに多くの条件を追加する方法

カテゴリ Views コアバージョン 8.4x 関連モジュール hook_views_query_alter

modules/custom/your_module/your_module.module

/**
 * @param \Drupal\views\ViewExecutable $view
 * @param \Drupal\views\Plugin\views\query\QueryPluginBase $query
 */
function your_module_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
  if ($view->id() == 'your_view_id') {
    $or = new Condition('OR');
    foreach ($条件 as $_and) {
      $and = new Condition('AND');
      foreach ($_and as $key => $val) {
        if (!empty($val)) {
          $and->condition("node__{$key}.{$key}_value", $val);
        }
      }
      $or->condition($and);
    }
    $query->addWhere($whereGroup++, $or);
  }
}

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール降順で並び替える タイトル
ユーザの管理 7.15 Devel 簡単に指定ユーザにログインしなおす方法
コンテンツの管理 8.9.x Dialog Modal Canvas drupal 8 の標準機能のダイアログ/ポップアップを表示する方法
Messages 7.34 Disable messages 標準(コア)が表示する特定のメッセージ非表示にしたい
アップデート 7.28 DisableMessages モジュールのアップデートガイダンスを非表示にしたい
コンテンツの作成 8.9.x Display sweet, Views, Twig Tweak, Views field formatter テーマに頼らず コンテンツのフィールドとしてViewsを埋め込み表示する方法
アップデート 7.34 Distribution(Commerce Kickstart) drushでcommerce_kickstartのアップデートに失敗する
コンテンツの作成 8.4x Download とにかく何でもコンテンツをダウンロードさせる方法
アップデート 7.50 Download count DOWNLOAD MODULEページでダウンロードが失敗することがある
サイトの構築 7.59 Drupal.ajax drupal 7 で Uncaught TypeError: Drupal.ajax is undefined となったときの対応方法
drush 7.54 Drush Drushでdrupalサイトをインストールする方法
PHP 8.9.x drush drush sql:cli < が機能しない場合の対処
Migrate 9.x drush config Upgrade source(環境) を 変更したときにやるべきこと
サイトの構築 7.34 ECK Entityの使い方について
コンテンツの管理 8.4x Entity EntityをPropertyで探す(クエリする)方法
言語 7.15 Entity Translation デフォルトの言語 - Entity Translation
言語 7.15 Entity Translation 各フィールドのラベルの多言語切り替え漏れ(フィールド・ラベル)
言語 7.15 Entity Translation nodeのEntity Translation
言語 7.14 Entity Translation 各フィールドのラベルの多言語切り替え漏れ(接頭子、接尾子)
コンテンツの作成 7.34 Entityreference prepopulate 新規ノード作成時のリファレンス方法
タクソノミー 7.15 Entity_Trarnslation Taxonomy TaxonomyのEntity Translation

ページ