Я пытаюсь создать специальный маршрут, который обрабатывает подтверждение определенного действия. Например, если я пытаюсь получить доступ к маршруту /admin/user/1/delete
Я хочу сначала пойти по другому маршруту, чтобы показать специальную HTML-страницу, которая подтверждает, что они хотят выполнить действие (т. Е. Подтвердить / admin / user / 1 / delete), и на странице есть кнопка подтверждения, которая идет к маршруту и кнопка возврата назад, которая перенаправляет к рефереру.
В приведенном ниже примере есть способ разрешить {route} быть чем-либо и передать это на страницу ветки?
/**
* @Route("/confirm/{route}", name="confirm_dialog")
* @param type $route
*/
public function confirmAction($route)
{
}
Существует кулинарная книга, охватывающая этот конкретный случай использования:
http://symfony.com/doc/current/cookbook/routing/slash_in_parameter.html
По умолчанию компонент маршрутизации Symfony требует, чтобы параметры соответствовали следующему пути регулярного выражения: «[^ /] +». Это означает, что разрешены все символы, кроме «/».
Вы должны явно разрешить «/» быть частью вашего параметра, указав более разрешительный путь регулярного выражения: «. +»
/**
* @Route("/confirm/{route}", name="confirm_dialog", requirements={"route"=".+"})
* @param type $route
*/
public function confirmAction($route)
{
// ...
}
Но я бы не рекомендовал шаблон, который вы пытаетесь использовать.
Я бы порекомендовал иметь такой же маршрут/ Администратор / пользователь / 1 / удалить» с помощью ПОЛУЧИТЬ для отображения формы подтверждения и использования СООБЩЕНИЕ выполнить удаление.
Если вы не хотите повторять код для запроса подтверждения, вы всегда можете извлечь этот конкретный код.
Других решений пока нет …