我正在尝试在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'));
使用这些排序链接可以生成如下网址:games/name/asc
排序不起作用,$ this-&gt; PassedArgs为空。我的错误是什么?
答案 0 :(得分:0)
如果希望命名参数在passArgs中作为传递参数使用,则需要为第二个Router :: connect调用提供第三个参数。
Router::connect('/games/:sort/:direction',
array('controller' => 'UserGames'),
array('pass' => array('sort', 'direction')));
在这种情况下,$this->passedArgs[0]
将是排序值,$this->passedArgs[1]
将是方向值。
有关详细信息,请参阅the CakePHP docs。