Применение параметров маршрутов в Laravel

Рассмотрим некоторое практическое применение параметров маршрутов. Давайте в зависимости от значения параметра будем отдавать различный текст.

Пусть у нашего маршрута есть параметр:

routes/web.php<?php
  Route::get('/post/{id}', [PostController::class, 'show']);
?>

Пусть также в действии контроллера хранится массив, в котором ключами будут значения параметра, а значениями - соответствующие тексты:

app/Http/Controllers/PostController.php<?php
  class PostController extends Controller
  {
    public function show()
    {
      $posts = [
        1 => 'текст 1',
        2 => 'текст 2',
        3 => 'текст 3',
        4 => 'текст 4',
        5 => 'текст 5',
      ];
    }
  }
?>

Давайте отдадим в браузер текст, соответствующий значению параметра:

app/Http/Controllers/PostController.php<?php
  class PostController extends Controller
  {
    public function show($id)
    {
      $posts = [
        1 => 'текст 1',
        2 => 'текст 2',
        3 => 'текст 3',
        4 => 'текст 4',
        5 => 'текст 5',
      ];
      
      return $posts[$id];
    }
  }
?>

Практические задачи

Пусть есть массив с именами юзеров и их городами:

php<?php
  $users = [
    'user1' => 'city1',
    'user2' => 'city2',
    'user3' => 'city3',
    'user4' => 'city4',
    'user5' => 'city5',
  ];
?>
Задание 1

Создайте маршрут, который параметром будет принимать имя юзера, а в браузером результатом отправлять его город.

Задание 2

Сделайте так, чтобы, если параметром передано несуществующее имя, в браузер выводилось сообщение об этом.