Необязательный параметр Index Route

#php #laravel #laravel-5 #lumen

#php #laravel #laravel-5 #lumen

Вопрос:

Я ищу необязательный параметр для индексного маршрута следующим образом:

 $app->get('/{name?}', function ($name) {
      //Do Something here
});
  

Я в основном хочу проверить и посмотреть, есть ли указанный параметр. Если это так, верните конкретное представление, если нет, верните стандартное индексное представление. Ни за что на свете я не могу заставить его работать, скорее всего, делая что-то глупое! Любая помощь будет принята с благодарностью!

Ответ №1:

Прежде всего, вам нужно сделать аргумент $name необязательным в вашей функции контроллера, чтобы он работал, когда имя не указано. Затем, в зависимости от того, установлен параметр или нет, вы можете возвращать разные представления:

 $app->get('/{name?}', function ($name = null) {
  if (is_null($name))  {
    return view('index');
  }
  else {
    return view('some_other_view');
  }
});
  

ПРИМЕЧАНИЕ: На мой взгляд, было бы более читабельно, если бы вы создали 2 отдельных маршрута, один для индекса и один, который принимает параметр name, поскольку поведение вашего приложения в этих 2 случаях кажется совершенно разным.

Комментарии:

1. Привет, jedrzej, в итоге я выбрал 2 отдельных маршрута, как вы предложили, и это сработало. Спасибо за вашу помощь!