Hinzufügen einer Registerkarte / lokalen Aufgabe zu einem Knoten

10

Ich habe ein Modul namens erstellt hotel_reviews.

Ich habe den Routenknoten / {node} / reviews mit hotel_reviews.routing.yml erstellt .

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

Ich habe dann versucht, eine lokale Aufgabe mit hotel_reviews.links.task.yml hinzuzufügen .

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

Ich kann jetzt auf den von meinem Controller definierten Inhalt unter zugreifen. node/1/reviewsWenn ich jedoch zu gehe, wird node/1keine Registerkarte "Bewertungen" angezeigt.

Was mache ich falsch?

Ich habe bisher die folgende Dokumentation verwendet:

Felix Eve
quelle

Antworten:

14

Ihre Basisroute ist falsch. Sie müssen die Route verwenden, die der Knoten für / node / 1 verwendet. Das ist nicht node.view. Es ist entity.node.canonical.

Berdir
quelle
3
Es ähnelt dem, was im Tracker-Modul in der Datei tracker.links.task.yml für die Registerkarte "Aktivität" (/ user / {user} / activity) ausgeführt wird, für die die Basisroute entity.user.canonical lautet. (Ich habe dieses Beispiel als Erinnerung für mich selbst hinzugefügt, in der Hoffnung, dass es auch anderen Benutzern hilft.)
kiamlaluno
1
Das hat bei mir super funktioniert. Danke ... Aber es wechselt vom Admin-Thema zum Front-End-Thema ... Irgendwelche Gedanken darüber, wie man es mit dem Admin-Thema beibehält? Vielen Dank!
Delford Chaffin
1
Nevermind ... fand es ... hinterließ hier eine Antwort für andere: (in der Routendefinition) Optionen: _admin_route: TRUE
Delford Chaffin