私はいくつかのURLを持っています:
- / dave
- / davina
- / dave / chris
- / davina / peter
ルートにそれらすべてのエントリがあります。この例は次のとおりです。
routes.dave.route = /dave
routes.dave.defaults.module = default
routes.dave.defaults.controller = person
routes.rcp.defaults.action = index
routes.davina.route = /dave/chris
routes.davina.defaults.module = default
routes.davina.defaults.controller = person
routes.davina.defaults.action = index
重複の問題があることがすぐにわかると思います。複数のURLを1つのルートに結合する方法はありますか?
/:personを使って遊んだことがありますが、personcontrollerには行かない他のコンテンツもあります。
routes.person.route = /:personname
routes.person.defaults.module = default
routes.person.defaults.controller = person
routes.person.defaults.action = index
routes.person.reqs.personname = "^[a-zA-Z0-9]+$"
検索コントローラーに送信される/search?person = daveなどのURLは、上記の式によって明らかに殺されています。
要件をリストとして表現できますか?「dave|davina | etc」またはこれを行う別の魔法のzendメソッドはありますか?
更新: 私は遊んでいて、この部分的な解決策に出くわしました:
routes.person.route = /:personname
routes.person.defaults.module = default
routes.person.defaults.controller = person
routes.person.defaults.action = index
routes.person.reqs.personname = "(dave|davina)"
routes.person.route = /:person/:personname
routes.person.defaults.module = default
routes.person.defaults.controller = person
routes.person.defaults.action = index
routes.person.reqs.personname = "(chris|peter)"
私は今のところこれを使って私の要件を満たしていますが、誰もがアドバイスを提供できるようにこれを開いたままにします(少なくとも1日)。主な問題は、両方のリストが大きくなり、最終的に問題が発生することです。