Symfony2 подстановочный знак маршрутизации

Я пытаюсь создать специальный маршрут, который обрабатывает подтверждение определенного действия. Например, если я пытаюсь получить доступ к маршруту /admin/user/1/deleteЯ хочу сначала пойти по другому маршруту, чтобы показать специальную HTML-страницу, которая подтверждает, что они хотят выполнить действие (т. Е. Подтвердить / admin / user / 1 / delete), и на странице есть кнопка подтверждения, которая идет к маршруту и кнопка возврата назад, которая перенаправляет к рефереру.

В приведенном ниже примере есть способ разрешить {route} быть чем-либо и передать это на страницу ветки?

/**
* @Route("/confirm/{route}", name="confirm_dialog")
* @param type $route
*/
public function confirmAction($route)
{
}

0

Решение

Существует кулинарная книга, охватывающая этот конкретный случай использования:
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 / удалить» с помощью ПОЛУЧИТЬ для отображения формы подтверждения и использования СООБЩЕНИЕ выполнить удаление.
Если вы не хотите повторять код для запроса подтверждения, вы всегда можете извлечь этот конкретный код.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]