Slim 3 - косая черта как часть параметра маршрута

Мне нужно составить URL-адреса с параметрами, которые могут содержать косую черту /. Например, классический /hello/{username} маршрут. По умолчанию /hello/Fabien будет соответствовать этому маршруту, но не /hello/Fabien/Kris. Я хотел бы спросить, как я могу это сделать в рамках Slim 3.


person User    schedule 29.08.2016    source источник
comment
Добавив еще один заполнитель /hello/{username}/{name}?   -  person revo    schedule 29.08.2016
comment
@revo это невозможно, потому что может быть 2 или более слэшей, и мне нужно сохранить все после / hello / в одну переменную, в данном случае параметр   -  person User    schedule 29.08.2016


Ответы (2)


Заполнители маршрутов:

Для необязательных параметров «Без ограничений» вы можете сделать следующее:

$app->get('/hello[/{params:.*}]', function ($request, $response, $args) {
    $params = explode('/', $request->getAttribute('params'));

    // $params is an array of all the optional segments
});
person revo    schedule 29.08.2016
comment
Спасибо, это именно то, что мне нужно. - person User; 29.08.2016

Вы также можете использовать $args:

$app->get('/hello[/{route:.*}]', function ($request, $response, $args) {
    $route = $args['route']; // Whole Route
    $params = explode('/', $route); // Route split
});
person Anuga    schedule 25.10.2018