Symfony маршрутизация с параметрами с заданной структурой c - PullRequest
0 голосов
/ 14 января 2020

Можно ли объявить маршрут в symfony следующим образом

/somestuff/{query}

Где структура query будет

string-with-minus-id000001

Я хотел бы иметь возможность чтобы получить первую часть как атрибут в контроллере, а вторую часть как идентификатор. Определение маршрута как

/somestuff/{name}-id{id}

не сработало

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Я нашел способ сделать это в аннотации, вот ответ:

@Route(
   "/somestuff/{name}-id{id}",
   methods={"GET"} ,
   name="route_name",
   defaults={"name"=""},
   requirements={"name"=".*?", "id"="\d+"}
)
0 голосов
/ 15 января 2020

если структура всегда будет выглядеть следующим образом

/somestuff/{name}-id{id}

Универсальный способ получить имя и id будет

/**
 * @Route("/somestuff/{slug}")
 */
public function someAction(Request $request, $slug)
{
    $reversed = strrev($slug);
    $paramArray = explode('-', $reversed, 1); // limit
    $id = strrev($paramArray[0]);
    $name = strrev($paramArray[1]);
    // rest of code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...