Module Development

Use Parameters in a Route for Drupal 8, 9, 10, and 11

Let's write some code that will allow us to see route parameters in action. We'll define a new route with a path like /journey/42/full but where 42 can be any node ID, and full can be any view mode. When a user accesses the path we'll pass the dynamic parameters from the URL to the controller. The controller will then load the corresponding node and render it using the provided view mode, and return that to display on the page.

By the end of this tutorial you should be able to:

  • Use dynamic slugs in a route to pass parameters to the route controller.
  • See how Drupal will upcast a value like the node ID, 42, to a Node object automatically.
  • Explain what happens when you visit a URL that matches a route but the parameters don't pass validation.

By the end of this tutorial, you should be able to pass dynamic values from the URL to a route's controller.