如果您想要像
这样的链接 http://www.domain.com/users/54/John
在Cakephp中,您必须将其重写为:
http://www.domain.com/users/index/54/John
如果你不这样做,cakephp抱怨在users
控制器内没有名为54
的行动。没有别的办法吗?想告诉cakephp,当url中的第二个变量是一个数字时(所以在这种情况下为54),将它引用到索引函数:
public function index($userId = null)
。
另一个例子是这个问题的网址。如果是cakephp,则网址如下:
http://stackoverflow.com/questions/index/18547494/avoid-having..
在cakephp中可以做这样的事吗?
http://stackoverflow.com/questions/18547494/avoid-having..
我希望这是有道理的。
答案 0 :(得分:1)
Router::connect('/users/:id/:name', array(
'controller' => 'users',
'action' => 'index'
), array('pass' => array('id', 'name')));
您的控制器操作代码应如下所示:
public function index($id = null, $name = null) {
// your code
}
在您的视图中,您可以按如下方式定义链接以访问网址
echo $this->Html->link('view', array(
'controller' => 'users',
'action' => 'index'
'id' => $yourid,
'name' => $yourname
))
答案 1 :(得分:0)
创建链接时,您需要在路由数组中使用id键。像这样:
array(
'controller'=>'users', 'action'=>'index', 'id' => 54
}
答案 2 :(得分:0)
你应该有这个:
Router::connect(
'/:controller/:id',
array('action' => 'view'),
array('id' => '[0-9]+')
);