我通过以下方式与CakePHP的HtmlHelper生成简单的简单链接:
$html->link("Newest", array(
'controller' => 'posts',
'action' => 'listView',
'page'=> 1,
'sort'=>'Question.created',
'direction'=>'desc',
));
具有以下路线规则:
Router::connect('/foobar/*',array(
'controller' => 'posts',
'action' => 'listView'
));
链接很好地生成为/foobar/page:1/sort:Question.created/direction:desc
。正如我想的那样,它使用我的URL前缀而不是控制器/动作名称。
但是,对于某些链接,我必须添加如下命名参数:
$html->link("Newest", array(
'controller' => 'posts',
'action' => 'listView',
'page'=> 1,
'sort'=>'Question.created',
'direction'=>'desc',
'namedParameter' => 'namedParameterValue'
));
此案例中的链接指向/posts/listView/page:1/sort:Question.created/direction:desc/namedParameter:namedParameterValue
。但我不希望在我的URL-s中有控制器/动作名称,为什么Cake在这种情况下忽略了我的路由器配置?
答案 0 :(得分:2)
相当无证,但是mentioned,这解决了它:
Router::connectNamed(array('namedParameter', 'page', 'sort', 'direction'));