我想要实现的目标:
当用户通过时:
/results?val=real&x=1&y=0
它应该显示:
/results/real.html?x=1&y=0
从行动I我仍然可以访问$this->request->query['val']
,其应该等于real
到目前为止我做了什么?
我正在使用CakePHP 2.4
Router::parseExtensions('html');
Router::connect('/results/:val',
array('controller'=>'Post','action'=>'results',
'?' => array('val'=>'[A-Za-z0-9]-_ +','x'=>'[0-9]+','y'=>'[0-9]+')));
答案 0 :(得分:11)
只需在routes.php
文件中定义路线,如下所示。
Router::connect(
'/results/:val',
array(
'controller' => 'Post',
'action' => 'results',
),
array(
'pass' => array('val')
)
);
您可以设置如下所示的参数,以便按照您想要的方式生成链接。
echo Router::url(array(
'controller' => 'Post',
'action' => 'results',
'val' => 'real',
'ext' => 'html',
'?' => array('x' => '1', 'y' => '0')
));
显示:results/real.html?x=1&y=0