Dodaj kartę / zadanie lokalne do węzła

10

Stworzyłem moduł o nazwie hotel_reviews.

Utworzyłem węzeł trasy / {węzeł} / recenzje za pomocą 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'

Następnie próbowałem dodać zadanie lokalne za pomocą hotel_reviews.links.task.yml .

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

Mogę teraz uzyskać dostęp do zawartości zdefiniowanej przez mój kontroler na stronie node/1/reviews, jednak gdy przejdę do node/1, nie widzę karty recenzji.

Co ja robię źle?

Do tej pory korzystałem z następującej dokumentacji:

Felix Eve
źródło

Odpowiedzi:

14

Twoja podstawowa trasa jest zła. Musisz użyć trasy używanej przez węzeł dla / node / 1. To nie jest node.view. To podmiot.node.kanoniczny.

Berdir
źródło
3
Jest podobny do tego, co zrobiono z modułu Tracker w jego pliku tracker.links.task.yml dla zakładki „Aktywność” (/ user / {user} / activity), dla której podstawową trasą jest entity.user.canonical. (Dodałem ten przykład jako przypomnienie dla siebie, mając nadzieję, że pomoże to również innym użytkownikom.)
kiamlaluno
1
To zadziałało dla mnie świetnie. Dzięki ... Ale zmienia się z motywu administratora na motyw frontonu ... Masz jakieś przemyślenia na temat tego, jak zachować go z motywem administratora? Dzięki!
Delford Chaffin
1
Nevermind ... znalazł to ... pozostawiając odpowiedź tutaj: (w definicji trasy) opcje: _admin_route: TRUE
Delford Chaffin