получить маршрут от URL - PullRequest
       13

получить маршрут от URL

9 голосов
/ 22 ноября 2011

В Symfony2 , вы знаете, как найти маршрут из URL в контроллере?У меня есть этот пример:

$params = $router->match('/blog/my-blog-post');
// array('slug' => 'my-blog-post', '_controller' => 'AcmeBlogBundle:Blog:show')

$uri = $router->generate('blog_show', array('slug' => 'my-blog-post'));
// /blog/my-blog-post

Я хотел бы найти blog_show, когда у меня есть /blog/my-blog-post

Спасибо

Ответы [ 3 ]

16 голосов
/ 22 ноября 2011

Я не знаю, что у вас в этом $router, но со службой маршрутизатора я получаю вот это:

$this->get('router')->match('/')

array
  '_controller' => string 'Namespace\Foo\MyController::indexAction'
  '_route' => string 'home'

Если вы хотите, чтобы название маршрута текущей страницы было таким, каким вы можете просто прочитать его из объекта запроса: $request->attributes->get('_route').

1 голос
/ 30 января 2014

вы можете получить ту же ошибку, если используете абсолютные пути, это то, что я делал, когда нужно, чтобы соответствовать рефереру

$ref = str_replace("app_dev.php/", "", parse_url($request->headers->get('referer'),PHP_URL_PATH ));
$route = $this->container->get('router')->match($ref)['_route'];
1 голос
/ 12 мая 2013

Недавно я обнаружил, что метод match () использует HTTP-метод текущего запроса, чтобы соответствовать запросу.Так, например, если вы выполняете запрос PUT, он попытается сопоставить указанный вами URL-адрес с методом PUT, что приведет к исключению MethodNotAllowedException (например, при получении реферера).

Подробнее см. В https://stackoverflow.com/a/16506062/100675

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...