Почему route() возвращает странный URL для именованного маршрута?

Есть такие маршруты. При переходе на сайт переадресует на /test - именованный маршрут, у которого есть два параметра, каждый из которых необязателен
/**
 * @var Laravel\Lumen\Routing\Router $router
 */

$router->get('/', function () use ($router) {
    return route('test');
    // return redirect()->route('test');
});

$router->get('/test[/{id}[/{name}]]', ['as' => 'test', function ($id = 0, $name = '') {
    if ($name) {
        return "Name: $name (ID: $id)";
    }
    if ($id) {
        return "ID: $id";
    }
    return 'Need an id or name!';
}]);


Однако, глобальная функция route() возвращает какой-то странный URL: https://example.com/test[/{id}[/{name}]]. Почему такое происходит?
  • Вопрос задан
  • 218 просмотров
Решения вопроса 1
zkelo
@zkelo Автор вопроса
Вопрос решён. Оказалось, что это баг Lumen, который должны скоро исправить
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Kostik_1993
Web Developer
Может быть необязательные параметры нужно писать иначе? Что в доке на этот счет?
Смотрю в доку FastRoute у них такая конструкция описана в виде /test[/{id:\d+}[/{name}]]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы