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