Symfony2 Route получить параметр только если целое число
Я получил определенные маршруты в маршрутизации.yml-файл
Один маршрут:
Profile_user_profile:
path: /profile/{id}
defaults: { _controller: ProfileBundle:Users:profile }
methods: [get]
И второе:
Profile_accept_connection_proposal:
path: /profile/acceptProposal
defaults: { _controller:ProfileBundle:Users:acceptConnectionProposal }
methods: [put]
Первый маршрут без способов: [вам] слушать также и [поставил] запрос и поймать второй URL-адрес, прежде чем дошло до определения маршрута. Есть ли способ определить проверку параметра только в том случае, если url является числовым.
2 ответа:
Просто добавьте параметр
requirements
, чтобы принимать только цифры для определенного маршрута, например:Profile_user_profile: path: /profile/{id} defaults: { _controller: ProfileBundle:Users:profile } methods: [get] requirements: <--- ADDED PARAMETER id: \d+
Для получения дополнительной информации прочитайте Symfony книгу о маршрутизации. Там вы можете найти более продвинутый пример использования параметров маршрута.
Теперь вы можете сделать это с аннотациями в вашем контроллере следующим образом:
class UserController extends AbstractController { /** * @Route("/profile/{id}", name="user_profile", requirements={"page"="\d+"}) */ public function profile($id) { // ... } }
Подробнее о документах Symfony В частности определение требований к маршрутизации