0

当你想要一个链接时

http://www.domain.com/users/54/John

在 Cakephp 中,您必须将其重写为:

http://www.domain.com/users/index/54/John

如果你不这样做,cakephp 会抱怨在users控制器中没有调用54. 没有其他方法可以解决这个问题吗?喜欢告诉 cakephp,当 url 中的第二个变量是一个数字(所以在本例中为 54)时,将其引用到 index 函数:

public function index($userId = null).

另一个例子是这个问题的 url。如果是 cakephp,则 url 如下所示:

http://stackoverflow.com/questions/index/18547494/avoid-having..

在 cakephp 中可以做这样的事情吗?

http://stackoverflow.com/questions/18547494/avoid-having..

我希望这是有道理的。

4

3 回答 3

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
}

在您看来,您可以按如下方式定义链接​​以访问 url

echo $this->Html->link('view', array(
    'controller'  => 'users',
    'action' => 'index'
    'id' => $yourid,
    'name' => $yourname
))
于 2013-08-31T13:35:10.753 回答
0

You should have have this:

Router::connect(
   '/:controller/:id',
   array('action' => 'view'),
   array('id' => '[0-9]+')
);

Read: Routing in CakePHP

于 2013-08-31T13:13:04.013 回答
0

创建链接时,您需要使用路由数组中的 id 键。像这样的东西:

array(
    'controller'=>'users', 'action'=>'index', 'id' => 54
}
于 2013-08-31T11:12:54.763 回答