0

application.ini ファイルでルートを設定しています。これは、セットアップしたすべてのルートで機能します。問題は、そのコントローラー内に複数のアクションがあり、他のアクションでルートを使用しようとする場合です。

たとえば、ページングと列の並べ替えのために、application.ini に次のコードを作成しました。

resources.router.routes.search.route = "search/:page/:col/:sort/:limit/"
resources.router.routes.search.defaults.controller = search
resources.router.routes.search.defaults.page = 1
resources.router.routes.search.defaults.col = time
resources.router.routes.search.defaults.sort = default
resources.router.routes.search.defaults.limit = 50
resources.router.routes.search.reqs.page = \d+
resources.router.routes.search.reqs.col = \w+
resources.router.routes.search.reqs.sort = \w+
resources.router.routes.search.reqs.limit = \d+

上記は、次のようなそのページのデフォルトのアクションにいるときに機能します

www.mywebsite.com/search/2/

結果の 2 ページ目が表示されます。しかし、別のアクションで同じことをしようとすると、

www.mywebsite.com/search/action/2

空白のページが表示されるだけです。iniで独自の設定を作成しようとしましたが、うまくいきませんでした。以前にこの問題に遭遇したことがありますが、通常はあきらめて物事を別のコントローラーに分けましたが、別のアクションが必要です。

どんな助けでも大歓迎です。

マット

4

1 に答える 1

0

search/:page/:col/:sort/:limit/一致しませんwww.mywebsite.com/search/action/2。あなたのルートが探しているのは、ページ番号を表すsearch/数字 ( ) です。\dただし、リクエストsearch/の後に文字列が続きますaction。route: に別のパラメータを追加することをお勧めします。search/:action/:page/:col/:sort/:limitデフォルトactionindexです。

デフォルト アクションの最初のページの要求は変わりません ( search)。デフォルト ルートのページ 2 の要求は になりsearch/index/2/ますが、別のアクションを指定できるようになりました ( search/action/2)。

于 2009-12-14T16:42:59.590 に答える