読者です 読者をやめる 読者になる 読者になる

UNIX的なアレ

UNIX的なこととかいろいろ

routes.phpを書いた時の逆ルーティングとnamed paramterの挙動

CakePHP PHP

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の値の渡し方を配列で渡すと逆ルーティングできなくなってしまうみたいです。うーん、何か設定がおかしいのかもしれません。とりあえずワークアラウンドはみつけたのでとりあえずはコレでいきますか。