ルート設定では、カスタムルートのみを使用します。うまく機能する前に、ページ付けに問題があります。
ルート:
// view all posts by year and month
Router::connect('/blog/:year/:month/*', array(
'controller' => 'posts',
'action' => 'index',
'month' => null
), array(
'pass' => array(
'year',
'month'
),
'year' => '[12][0-9]{3}',
'month' => '0[1-9]|1[012]'
));
これにより、次のようになります。/ blog / 2012 /は、2012年のすべての投稿を一覧表示する必要がありますが、月は関係ありません。/ blog / 2012/05 /は、2012年5月以降のすべての投稿を一覧表示する必要があります。/ blog / 2012/05 / page:2を使用するために、最後に/*を追加しました。これは現在正常に機能しています。ただし、/ blog / 2012 / page:2は機能せず、page:2は月と見なされ、正規表現が一致しないため、''に変換されるため、データベースクエリは月''を検索します。
おそらく、ルーティングと、渡すことができる変数と渡すことができない変数を宣言する方法を完全には理解していませんでしたが、基本的に変更せずに、この構成を書き直して機能させるにはどうすればよいですか?本当に設定の問題だと思います。ありがとう。