routes.phpを書いた時の逆ルーティングとnamed paramterの挙動
routes.phpで書いたルーティングを、$html->linkなんかで逆ルーティングできるのはなかなか便利ですよね。サービスで使いたいURLを後から決めようってときも、routes.phpを変更するだけで簡単に対応できてしまいます。
しかし、named parameterを使った時にちょっと動作が上手くいかないことがあったのでメモ。
routes.php
<?php Router::connect('/show/*', array('controller'=>'posts','action'=>'show'));
view/post/show.ctp
逆ルーティングがきかないパターン
<?= $html->link('link',array('controller'=>'posts','action'=>'show','param'=>$value)) ?>
逆ルーティングがきくパターン
<?= $html->link('link',array('controller'=>'posts','action'=>'show','param:'.$value)) ?>
こんな感じです。named paramterの値の渡し方を配列で渡すと逆ルーティングできなくなってしまうみたいです。うーん、何か設定がおかしいのかもしれません。とりあえずワークアラウンドはみつけたのでとりあえずはコレでいきますか。