Глобальные ограничения параметров в Laravel

Можно сделать так, чтобы параметр с определенным именем всегда имел заданное ограничение в любых маршрутах. Это нужно прописовать в методе boot класса RouteServiceProvider.

Давайте для примера зададим глобальное ограничение для параметра с именем id:

App\Providers\RouteServiceProvider.php<?php
  public function boot()
  {
      Route::pattern('id', '[0-9]+');
  }
?>

Теперь любой маршрут, у которого есть параметр id, выполнится только если id будет числом:

routes/web.php<?php
  Route::get('/post/{id}', function ($id) {
    return '!!!'; // только если число
  });
?>
Задание 1

Наложите глобальное ограничение на параметр slug. Пусть он может содержать буквы и цифры, а также дефис и подчеркивание.