这是我在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()中完成此操作。它有效,但它很混乱,因为在调度请求之前,操作在技术上仍然被列为“搜索”或“术语”,并且这些键的值被分配给id。
这导致我的Zend_Acl检查中的问题我在前端控制器插件中执行。作为一种解决方法,我添加了“搜索”和“类型”作为我的ACL的权限,但同样,这是凌乱的。 ACL应保持对这些语义的清除。我喜欢在之前修改请求到达ACL插件。