4

Zend FrameworkのINIファイルを使用して以下のようにルートを定義しようとしています: http://api.example.com/servicename/ {version} / users /:userid / items /:itemid

routes.host.type = "Zend_Controller_Router_Route_Hostname"
routes.host.route = "api.example.com"

routes.host.chains.api.type = "Zend_Controller_Router_Route_Static"
routes.host.chains.api.route = "servicename/v1"
routes.host.chains.api.defaults.controller = "servicename-v1-api"
routes.host.chains.api.defaults.action = "index"

routes.host.chains.api.chains.users.chains.user.type = "Zend_Controller_Router_Static"
routes.host.chains.api.chains.users.route = "users"
routes.host.chains.api.chains.users.defaults.controller = "users"
routes.host.chains.api.chains.users.defaults.action = "index"

routes.host.chains.api.chains.users.chains.user.type = "Zend_Controller_Router_Route"
routes.host.chains.api.chains.users.chains.user.route = ":id"
routes.host.chains.api.chains.users.chains.user.defaults.controller = "user"
routes.host.chains.api.chains.users.chains.user.defaults.action = "index"
...

host-apiルートは正常に機能しますが、他のルートに到達しようとすると、「リクエストに一致するルートがありません」というエラーが表示されます。

chain.something.chains.somethingelseは扱いにくいように見えるので、おそらくそれを行う正しい方法ではありません。誰?

4

1 に答える 1

3

私はそれを行う方法を見つけたと思います。基本的に、abstractをtrueに設定して各ルートの部分を定義し、それらすべてをタイプがZend_Controller_Router_Route_Chainに設定されているルートにリンクします。何かのようなもの:

[...]
routes.users.type = "Zend_Controller_Router_Route"
routes.users.route = "users"
routes.users.abstract = "1"
routes.users.defaults.controller = "users"
routes.users.defaults.action = "index"

routes.host-api-users.type = "Zend_Controller_Router_Route_Chain"
routes.host-api-users.chains = "host, api, users"
于 2010-02-12T23:09:22.530 に答える