4.5.3. Views Аргументы (контекстные фильтры).

Очень часто нам нужно вывести блок относящийся к определенному пользователю (например его статьи или объявления), вывести автора ноды в блоке, на странице этой ноды. Но при этом у каждого пользователя свой список объявлений, у каждой ноды свой автор и эти блоки будут соответсвенно разные для каждой ноды и пользователя. Для подобных блоков у нас есть контекстные фильтры во вьюс.

drupal 8 contextual filters

Теперь давайте добавим фильтр для объявления, чтобы фильтровались данные только для нашего объявления на странице объявления. Фильтровать нужно по полю nid. Давайте сначала рассмотрим как в целом работает этот фильтр. У нас есть урл ноды

/node/7

Где 7 - это nid нашей ноды. Мы говорим Views'у через контекстный фильтр, отфильтруй нам ноды по nid и для каждой ноды на разных страницах нод, у нас будут выводиться соотвествующие данные нод. Добавим фильтр nid:

drupal 8 contextual filters

 Дальше нужно выбрать Default actions для контекстного фильтра, в данном случае  нужно выбрать ID Материала из URL:

drupal 8 contextual links

 Теперь можно проверить работу нашего фильтра, через форму предпросмотра. У меня есть объявление с nid 7, поэтому я ввожу 7 и нажимаю кнопку предпросмотра:

друпал 8 контекстные фильтры

 ...

 

 

 

 

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Здравствуйте, подскажите

Здравствуйте, подскажите пожалуйста, я делаю вывод всех новостей пользователя в его личном кабинете во вкладке, судя по всему всё делаю верно, но получаю вот такой эксепшн:

Symfony\Component\Routing\Exception\MissingMandatoryParametersException: Some mandatory parameters are missing ("arg_0") to generate a URL for route "view.bus.page_2". в Drupal\Core\Routing\UrlGenerator->doGenerate() (строка 171 файла /home/george/Документы/web/allbus/core/lib/Drupal/Core/Routing/UrlGenerator.php).

как быть? что я делаю не так?