Zend-маршрут исключает одну строку - PullRequest
1 голос
/ 03 декабря 2010

Я определил

routes.kategoriler.route               = ":lang/categories/:cat/:name"
routes.kategoriler.defaults.controller = "category"
routes.kategoriler.defaults.action     = "index"


routes.categories.route               = ":lang/:type/:cat/:name"
routes.categories.defaults.controller = "types"
routes.categories.defaults.action     = "index"

тип ловит слово "категории". Я ставлю определения до и после, но не могу. Можете ли вы предложить решение?

Ответы [ 3 ]

2 голосов
/ 04 декабря 2010

Используйте требование к типу, чтобы оно не совпадало с категориями. Как это:

routes.categories.reqs.type = "[^categories]"

К сожалению, мои навыки регулярных выражений не на вершине, так что вы можете переписать его (Это немного уродливо, и оно не одобряет все, что содержит «категории», но дает вам идею.)

1 голос
/ 06 декабря 2010

используя подсказку от Регулярное выражение для соответствия строке, не содержащей слова?

routes.categories.reqs.type_name        =  "^((?!categories).)*$"

Решено мое дело

0 голосов
/ 07 февраля 2014

Чтобы иметь возможность принимать что-либо, кроме точного соответствия "категорий", используйте приведенное ниже регулярное выражение

^((?!^categories$).)*$

это позволит вам использовать тип как "мои категории" или "категории продуктов" или что-то еще, что не точно соответствует "категориям"

...