私の見解では、次のリンクがあります。
<?php echo $this->Html->link($article['Article']['title'], array('category' => $article['Page']['Category']['directory'], 'page' => $article['Article']['page_id'], $article['Article']['id'])); ?>
リンクが出力されることを期待しています: http://example.com/shows/3/articles/6
私のルートは次のようになります。
Router::connect(
'/:category/:page/:controller/:id',
array('action' => 'view'),
array(
'pass' => array('id'),
'page' => '[0-9]+',
'id' => '[0-9]+',
'category' => 'shows|music|games|books|hobbies',
)
);
代わりに、私のリンクは次のように返されます: http://example.com/articles/6/category:shows/page:3
絶対 URL を使用せずにこれを適切に表示するにはどうすればよいですか? これはルーティング、ビュー、リンク HTML ヘルパー、または 3 つの組み合わせの問題ですか? リンク ヘルパーが URL を解析する方法に問題があると思いますが、それを変更する方法がわかりません。
ブラウザに URL http://example.com/shows/3/articles/16を手動で入力すると、正しいページが表示されます。
名前付きパラメーターを調べましたが、それも私が望むものを達成していないようです。