我有一个系统,允许访问者浏览产品列表,排序和过滤它。
我希望我的网址看起来像这样的"/category/smartphones/samsung/android/.../"时,访客过滤选择“品牌”,“操作系统类型”,“中央处理器”,...所以他们过滤的每一个东西,url都会像这样改变:
filter by brand : /category/smartphones/samsung/
by os type : /category/smartphones/android/
by brand and os type : /category/smartphones/samsung/android/
...此外,访问者可以在过滤时进行排序,也可以在排序时进行过滤。因此,url可以更像"/category/smartphones/samsung/android/sort:created/direction:desc/"
我不知道cakephp能不能做这样的事情,因为我是这个框架的初学者。或者其他类似的解决方案?
我刚刚完成了路由器中的排序配置。但我不知道如何开始这样的事情(过滤器是无限的参数)。
发布于 2013-01-23 12:57:25
这实际上非常简单,如果您对Cake的默认路由方法感到满意,您甚至不需要在routes文件中有一个条目。:-)
这就是我所做的。
class PagesController extends AppController {
function test() {
debug($this->params['named']);
debug($this->params['pass']);
}
}然后我打电话给..。http://localhost/pages/test/x/y/z/something:x/else:y/1/2/3
它输出这个...
array(
'something' => 'x',
'else' => 'y'
)
array(
(int) 0 => 'x',
(int) 1 => 'y',
(int) 2 => 'z',
(int) 3 => '1',
(int) 4 => '2',
(int) 5 => '3'
)因此,您只需使用$this->params['named']和$this->params['pass']来获取所需的术语。希望这能有所帮助!
https://stackoverflow.com/questions/14375305
复制相似问题