http://localhost/routing/users/link
以下の $html->link() による url の生成をやっていると、
(1) が予想外の結果になってしまった。
(1) $html->link('users', array('controller' => 'users'))
期待 http://localhost/routing/users
結果 http://localhost/routing/users/link ................... x
(2) $html->link('tasks', array('controller' => 'tasks'))
期待 http://localhost/routing/tasks
結果 http://localhost/routing/tasks
これは、下記 (3) が働いたから。
router.php
function url($url = null, $full = false) {
...
if (empty($url['action'])) {
if (empty($url['controller']) ||
$params['controller'] === $url['controller'])
{
$url['action'] = $params['action']; .................. (3)
}
else {
$url['action'] = 'index';
}
}
:action が省略されており、
(1) と、元々開いたページの :controller が "users" で同じなので、
(3) が働く結果になっている。
気が付かなかった。
(1) で :action を指定する以外に、何か方法あるのかな?