Регулярное выражение для slug в маршруте symfont

У меня возникли проблемы с созданием регулярного выражения для сопоставления URL-слагов [a-z] ("слова", разделенные одиночными тире), например:

wordone-wordtwo-wordtree

в пути:

csa_platform_category:
    path:     /c/{slug}
    defaults: { _controller: CSAPlatformBundle:Category:index }
    requirements:
        slug: "^[a-z]+(?:-[a-z]+)*$"

в ветке:

<a href="{{ path('csa_platform_category', {'slug': cat.slug}) }}">{{ cat.name }}</a>

Отображаемая ошибка:

Во время рендеринга шаблона возникло исключение ("Параметр "slug" для маршрута "csa_platform_category" должен соответствовать "[az]+(?:-[az]+)*" ("" задан) для создания соответствующего URL-адреса ").

Я плохо разбираюсь в регулярных выражениях, поэтому буду признателен за любую помощь.


person emwww    schedule 29.12.2016    source источник
comment
В PHP вам нужно использовать разделители регулярных выражений для определения регулярных выражений, попробуйте "~^[a-z]+(?:-[a-z]+)*$~"   -  person Wiktor Stribiżew    schedule 29.12.2016
comment
путем добавления разделителей отображается ошибка авторизации: маршрут не найден для GET /category/mutuelle-sante ‹br› csa_platform_category: путь: /category/{slug} по умолчанию: { _controller: CSAPlatformBundle:Category:index } требования: slug: ~^[ аз]+(?:-[аз]+)*$~   -  person emwww    schedule 29.12.2016
comment
Хорошо, тогда проблема вообще не в регулярном выражении.   -  person Wiktor Stribiżew    schedule 29.12.2016


Ответы (1)


Ошибка, с которой вы столкнулись, говорит о том, что ваш cat.slug пуст.

("" данный)

Вы должны проверить данные в объекте cat, используя var_dump или dump

person goto    schedule 29.12.2016