1

我正在尝试在 CakePHP 中为我的控制器进行路由。

我的控制器叫做 UserGames。默认 CakePHP 排序代码:

<?php echo $this->Paginator->sort('price'); ?>

默认情况下,排序链接如下所示:userGames/index/sort:name/direction:asc

我添加了以下路由规则:

Router::connect('/games', array('controller' => 'UserGames', 'action' => 'index'));
Router::connect('/games/:sort/:direction', array('controller' => 'UserGames'));

使用这些排序链接会生成如下 URL:games/name/asc

以这种方式排序不起作用,并且 $this->PassedArgs 为空。我的错误可能是什么?

4

1 回答 1

0

如果您希望命名参数可用作passedArgs 中的传递参数,您需要为您的第二个Router::connect 调用提供第三个参数。

Router::connect('/games/:sort/:direction',
    array('controller' => 'UserGames'),
    array('pass' => array('sort', 'direction')));

在这种情况下,$this->passedArgs[0]将是排序值和$this->passedArgs[1]方向值。

有关更多信息,请参阅CakePHP 文档

于 2012-09-18T18:49:50.933 回答