首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将路由器cakephp配置为无限制/可选参数

将路由器cakephp配置为无限制/可选参数
EN

Stack Overflow用户
提问于 2013-01-17 16:56:39
回答 1查看 462关注 0票数 2

我有一个系统,允许访问者浏览产品列表,排序和过滤它。

我希望我的网址看起来像这样的"/category/smartphones/samsung/android/.../"时,访客过滤选择“品牌”,“操作系统类型”,“中央处理器”,...所以他们过滤的每一个东西,url都会像这样改变:

代码语言:javascript
复制
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能不能做这样的事情,因为我是这个框架的初学者。或者其他类似的解决方案?

我刚刚完成了路由器中的排序配置。但我不知道如何开始这样的事情(过滤器是无限的参数)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 12:57:25

这实际上非常简单,如果您对Cake的默认路由方法感到满意,您甚至不需要在routes文件中有一个条目。:-)

这就是我所做的。

代码语言:javascript
复制
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

它输出这个...

代码语言:javascript
复制
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']来获取所需的术语。希望这能有所帮助!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14375305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档