Подчеркивать как сегмент_сепараторов в routing.yml - PullRequest
4 голосов
/ 24 мая 2010

В проекте Symfony я хотел бы использовать подчеркивание в качестве разделителя для параметра в routing.yml.

Пример URL: /article/lorem-1111_45.html

In routing.yml

rule_sample:
 url:      /article/:info-:datePublished_:id.html
 param:    { module: cms, action: test }
 options:
   segment_separators: ['-', '/', '.', '_']
 requirements:
   info: ^([A-Za-z0-9\-]+)$
   datePublished: \d+
   id: \d+

Этот код не работает. У меня есть следующая ошибка: Невозможно разобрать маршрут ": Id.html"

.

Кто-нибудь знает, как реализовать это правило?

Ответы [ 2 ]

1 голос
/ 27 июля 2010

Я думаю, это ошибка в sfRoute.class.php. Строка 683: 'variable_regex' => '[\ w \ d _] +'

в PHP \ w "Соответствует любому буквенно-цифровому символу, включая подчеркивание (_)", а последнее подчеркивание совпадает. Я пытался изменить эту строку для: 'variable_regex' => '[\ A-Za-z \ d] +'

И теперь я могу использовать подчеркивание в качестве разделителя.

Я не очень проверял это. Я не знаю, приводит ли это к отказу от каких-либо других функций (конечно), но, возможно, именно на этой линии программисты Symfony могут запустить эту ошибку.

0 голосов
/ 25 мая 2010

Я считаю, что это ошибка в Symfony.

Я сделал тест, который не прошел и отправил отчет об ошибке с тестом в проект symfony

...