4.5.4. Views Связи (Relations)

Связи (relations) в друпале очень важная часть, так соединяются термины таксономии и контент, пользователи и контент, товары и отображение товаров в commerce. Благодаря этому мы можем при выводе полей материала вывести поля пользователя, когда выводим товары, то вывести и их цену и артикул.

drupal 8 views relations связи

Давайте создадим представление, который будет выводить в блоке информацию о пользователе создавшим материал на странице которого мы находимся. В одном из прошлых уроков мы уже разобрали как использовать контекстный фильтр и выводить информацию о страницы на которой находимся:
http://drupalbook.ru/drupal/453-views-argumenty-kontekstnye-filtry

 Имя представления: Информация об авторе
Машинное имя: athor_info
Настройки представления: Содержимое, Объявления
Создаем блок, с одной записью. 

друпал 8 связи

 Теперь нужно добавить контекстный фильтр по Содержимое: ID Содержимого:

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

Как и в прошлой статье ставим действие Передавать значение по умолчанию: ID материала из URL.

Теперь нам доступны поля ноды на странице которой мы находимся. Но нам нужны поля автора. В данный момент нам доступно только поле UID автора:
друпал views uid
 

Пришло время добавить связь автора:

drupal 8 views relations

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

друпал 8 вьюс

Я добавил сразу несколько полей:

Содержимое: Автор
(автор) Пользователь: Изображение
(автор) Пользователь: Preferred language
(автор) Пользователь: User status
(автор) Пользователь: UUID
(автор) Пользователь: Данные
(автор) Пользователь: Дата обновления

(автор) Пользователь: Имя 

Давайте теперь выведем этот блок на странице объявлений. Можете выставить в области видимости блока, чтобы он отображался только на типах материала Объявления.

друпал 8 views связи

Ну вот и все, мы разобрались как пользоваться связями во вьюсе, позже мы конечно же еще не раз будем использовать их, поэтому если не все понятно сейчас, то просто переходите к следующей статей.

Комментарии

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

Войти, используя 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-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Возможно вашу связь нужно

Возможно вашу связь нужно вызывать из другой типа сущности. Например у вас есть связь с таксономией Рубрикатор в типе материала Блог, а вы хотите вывести Views на странице пользователя со всеми рубриками в которых он оставил записи в блоге. Вам нужно сначала вывести контекстный фильтр по UID пользователя, потом добавить связь авторства пользователя к нодам которые он создал. Только тогда появится связь с термином таксономии. То есть иногда связь нужно выводить опосредованно, через другую связь:
Пользователь  -> ноды -> таксономия.
В drupal commerce связи еще намного длиннее, чтобы вывести картинку продукта в корзине:
Заказ -> line item -> commerce product -> product display