2

这是我在 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 插件之前对其进行修改。

4

0 回答 0