Маршрутизация Symfony 2 с URL-адресом в качестве аргумента - PullRequest
3 голосов
/ 06 июня 2011

У меня возникают некоторые проблемы при попытке передать URL в качестве аргумента в Symfony2.

У моего routing.yml есть такой шаблон: pattern: mark/{date}/{url}

Когда я пытаюсь перейтиto: /web/app_dev.php/mark/1307374717828/http%3A%2F%2Flocalhost%2Fweb%2Fapp_dev.php%2Fhome%2F

У меня есть страница не найдена, кажется, что она не выглядит как Symfony, потому что у меня нет проблемы "route not match".

Так как передать URL в качестве аргумента?

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Это не такое элегантное использование маршрутизации, как возможность сказать pattern: mark / {date} / {url}, но вы можете просто найти часть 'url' в качестве параметра запроса.

(в routing.yml)

_testurlthing:
    pattern: /mark/{date}
    defaults: { _controller: AcmeTestUrlBundle:Url:mark }

(в AcmeTestUrlBundle / Controllers / UrlController.php)

public function markAction($date)
{
  $url = $this->get('request')->get('url');
  return new Response("sending you to $url");
}

Теперь вы можете ссылаться на /web/app_dev.php/mark/1307374717828?url=http%3A%2F%2Flocalhost%2Fweb%2Fapp_dev.php%2Fhome%2F

Или используя веточку:

{{ path('_testurlthing', { 'date': 1307374717828, 'url': 'http%3A%2F%2Flocalhost%2Fweb%2Fapp_dev.php%2Fhome%2F' }) }}
0 голосов
/ 29 ноября 2017

По умолчанию Symfony не соответствует символу "/";Вы должны специально разрешить это, как описано здесь, в документации Symfony .

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