Skip to main content
Drupal code

Main navigation

  • Home
  • Snippets
User account menu
  • Log in

Breadcrumb

  1. Home

Views: two contextual filters with "OR"

By admin , 18 October, 2025

Tags

  • views

By default views is using "AND"

/**
 * Implements hook_views_query_alter().
 */
function MYMODULE_views_query_alter(ViewExecutable $view, QueryPluginBase $query): void {
 // Show input friendship requests and MY output friendship requests.
 if ($view->id() === 'MYVIEWS' && $view->current_display === 'page_1') {
   $current_user = \Drupal::currentUser()->id();
   foreach ($query->where as &$group) {
     foreach ($group['conditions'] as $key => $condition) {
       if (in_array($condition['field'], ['flagging.entity_id', 'flagging.uid = :flagging_uid'])) {
         unset($group['conditions'][$key]);
       }
     }
   }
   unset($group);
   $or_group = $query->setWhereGroup('OR');
   $query->addWhere($or_group, 'flagging.entity_id', $current_user, '=');
   $query->addWhere($or_group, 'flagging.uid', $current_user, '=');
 }
}

Tags Cloud

dependency injection(21) form(19) views(15) drush(14) twig(13) field(11) preprocess(10) render(7) node(7) translate(7) tabs(7) comment(6) controller(6) file(6) entity(5) config(5) phpstorm(5) entityTypeManager(5) routes(5) database(4) jquery(4) service(4) roles(4) commerce(3) image(3) date(3) phpunit(3) php(3) entityQuery(3) cache(3) slick(3) block(3) custom entity(3) javascript(3) user(3) taxonomy(3) guzzle(3) redirect(3) url(3) git(2) request(2) phpstan(2) event(2) template(2) module(2) schema(2) migration(2) libraries(2) access(2) drupal.org(2) tests(2) ajax(2) photoswipe(2) permissions(2) logger(2) vscode(2) suggestions(2) states(2) title(2) fieldset(2) mysql(2) docksal(1) docker(1) revision(1) filter(1) attribute(1) service provider(1) csv(1) PHPDoc(1) table(1) eslint(1) array(1) deprecation(1) theme(1) errors(1) wsod(1) settings.php(1) watchdog(1) pager(1) widget(1) file.usage(1) queue(1) exif(1) imagemagick(1) media(1) uuid(1) renderer(1) exposed form(1) page manager(1) transliteration(1) random(1) development(1) mail(1) webform(1) register(1) textarea(1) label(1) input(1) batch(1) import(1) messenger(1)
RSS feed
Powered by Drupal