Вот мой маршрут в формате JSON:
"jobs":
{
"type":"Zend_Controller_Router_Route",
"route":"/jobs/:action/:id/*",
"defaults":
{
"module":"api",
"controller":"jobs",
"action":"index",
"id":0
}
}
Это позволяет использовать URI, подобные приведенным ниже, и до сих пор прекрасно работает:
/jobs/ -> action=index, id=0
/jobs/view/1 -> action=view, id=1
/jobs/edit/1 -> action=edit, id=1
Однако ,Мне бы хотелось, чтобы в позиции : action также были предусмотрены следующие URI:
/jobs/type/volunteer -> action=index, type=volunteer
/jobs/search/php%20developer -> action=index, search=php developer
Пока что я выполняю это в App_Controller_Action :: __ call () .Это работает, но это грязно, потому что, пока запрос не отправлен, действие технически все еще перечисляется как «поиск» или «термин», и значение, предназначенное для этих ключей, присваивается идентификатору.
Это вызывает проблему в моих проверках Zend_Acl, которые я выполняю в плагине фронт-контроллера.В качестве обходного пути я добавил «поиск» и «тип» в качестве разрешений для моего ACL, но опять же, это грязно.ACL должен оставаться чистым от этой семантики.Мне бы хотелось, чтобы запрос был изменен до , когда он попадает в плагин ACL.