Router ステートメントに問題はありません。「 /class/:id 」ではなく/:class/:idが実際に必要かどうかはわかりませんが。違いを見ます?2 番目のバージョンではコロンが欠落しています。
これは、/class/[an-id] で始まるすべてのリクエストをルールにマップする必要があることを Router に伝えます。/:class として持つのは、ルーターに引数を渡すことを意味します。/foo/15または/bar/ 15 のいずれでもかまいません。これらの引数は、$this->params['class']および$this->params['id']で使用できます。このルールを前提として -> / :クラスID
あなたの質問では、「なぜ機能しないのかよくわかりません」と述べています。実際の問題については何も述べていないため、この種の記述は避けてください。
代わりに、何を期待していたか教えてください。そして、代わりに何を見ましたか?エラーでしたか?それとも警告?別のアクションが実行されたなど、まったく別の何かが表示される場合は、おそらくルーターが実際にどのように機能するかが原因です。貪欲なルートと次のような通常のルートがある場合:
/users/* および /users/:id
2 番目の URL は、最初のルーティング ルールが false を返さない限り、/users/* が貪欲であり、すべてのリクエストを自分自身に独占するため、どのリクエストにも一致しません。
これがあなたの状況である場合は、カスタム ルート クラスの作成方法を読むことをお勧めします。要約すると、カスタム ルート クラスは貪欲なルートを貪欲にしないようにします。より良い説明については、マークストーリーによる優れた記事があります: http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp
Cakephp でのルーティングは、最も紛らわしいトピックの 1 つであり、理解するまでに時間がかかる場合があります。クックブックはあなたの親友です。ルーティング ルールで各ルーティング要素が何をするかを確認するまで、すべてを読んで再読します。