Добавить вкладку / локальную задачу в узел


10

Я создал модуль под названием hotel_reviews.

Я создал маршрутный узел / {node} / reviews, используя hotel_reviews.routing.yml .

hotel_reviews.content:
  path: '/node/{node}/reviews'
  defaults:
    _controller: '\Drupal\hotel_reviews\Controller\ReviewsController::content'
    _title: 'Reviews'
  requirements:
    _permission: 'access content'

Затем я попытался добавить локальную задачу, используя hotel_reviews.links.task.yml .

hotel_reviews.content:
  route_name: hotel_reviews.content
  title: 'Reviews'
  base_route: node.view
  weight: 100

Теперь я могу получить доступ к содержимому, определенному моим контроллером node/1/reviews, однако, когда я перехожу на node/1страницу, я не вижу вкладку отзывов.

Что я делаю неправильно?

До сих пор я использовал следующую документацию:

Ответы:


14

Ваш базовый маршрут неверен. Вам нужно использовать маршрут, который использует узел для / node / 1. Это не node.view. Это сущность. Узел. Канонический.


3
Это похоже на то, что сделано из модуля Tracker в его файле tracker.links.task.yml для вкладки «Activity» (/ user / {user} / activity), для которого базовый маршрут - entity.user.canonical. (Я добавил этот пример как напоминание для себя, надеясь, что это поможет и другим пользователям.)
kiamlaluno

1
Это отлично сработало для меня. Спасибо ... Но он переключается с темы администратора на тему интерфейса ... Есть мысли о том, как сохранить ее вместе с темой администратора? Спасибо!
Делфорд Чаффин

1
Nevermind ... нашел его ... оставить ответ здесь для других (в определении маршрута) Варианты: _admin_route: ИСТИНА
Delford Chaffin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.