RESTサービスのルートをいくつか書いています。私のリソースのURIの1つは次のようになります
resources / user /:id
また、ユーザーの個々の属性へのアクセスを許可したいのですが、これは次のようになります。
resources / user /:id /:attribute
しかし、後者のルートを定義しようとすると、機能しません。これがルートが定義されている私のiniです
routes.user.route = "resources/user/:id"
routes.user.defaults.controller = user
routes.user.defaults.action = get
routes.user.defaults.id = 0
routes.user.reqs.id = "\d+"
routes.user_attribute.route = "resources/user/:id/:attribute/"
routes.user_attribute.defaults.controller = user
routes.user_attribute.defaults.action = getAttribute
routes.user_attribute.defaults.id = 0
routes.user_attribute.defaults.attribute = ""
routes.user_attribute.reqs.id = "\d+"
routes.user_attribute.reqs.id = "reviews|lists"
ブラウザでresources/user / 4 / reviewsにアクセスしようとすると、次の出力が表示されます。
An error occurred
Page not found
Exception information:
Message: Invalid controller specified (resources)
Stack trace:
#0 /usr/local/lib/ZendFramework/ZendFramework-1.7.1-minimal/library/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /home/baileyp/public_html/web/index.php(50): Zend_Controller_Front->dispatch()
#2 {main}
Request Parameters:
array(4) {
["controller"]=>
string(9) "resources"
["action"]=>
string(4) "user"
[10]=>
string(7) "reviews"
["module"]=>
string(7) "default"
}
つまり、コントローラーが「リソース」であり、アクションが「ユーザー」であるため、2番目のルートが正しく処理されていないことは明らかです。私はここで何が間違っているのですか?これを実装する方法を説明する例は、私が見つけたZendサイトにはありません。
そして、私はこれを行うためだけにモジュールを使用したくありません-URIに一致するようにフォルダーなどの作成を回避することは、ルーティングシステムの全体的な目的です。