我环顾四周寻找答案,虽然我找到了有关路线的话题,但我发现在这种情况下没有找到答案。所以我走了,试图解释我的问题=]
我在Cakephp为一个房地产经纪人创建了一个网站。在此网站上,您可以根据街道,发布日期和价格对房屋进行排序。
我想更改这些当前网址:
websitename.nl/houses/index/page:4/sort:street/direction:desc
websitename.nl/houses/index/sort:street/direction:desc/page:4
类似于:
websitename.nl/houses/street/descending/4
websitename.nl/houses/price/ascending/4
街道/价格和降序/升序将转换为荷兰语。
我尝试在routes.php中添加它:
Router::connect('/huizenaanbod/datum/aflopend/:page', array('controller' => 'houses', 'action' => 'index', 'sort'=>'published', 'direction' => 'desc'), array('page' => '[0-9]+'));
Router::connect('/huizenaanbod/datum/oplopend/:page', array('controller' => 'houses', 'action' => 'index', 'sort'=>'published', 'direction' => 'asc'), array('page' => '[0-9]+'));
但它忽略了desc并且只有asc工作..所以我试着在index.ctp中添加它:
if((!empty($this->params['sort']) && $this->params['sort'] == "published") && $this->params['direction'] == 'desc'){
echo $this->Paginator->sort('published', 'datum', array('direction' => 'asc', 'escape' => false));
} else {
echo $this->Paginator->sort('published', 'datum', array('direction' => 'desc', 'escape' => false));
}
尽管url现在确实发生了变化,但排序结果仍然是ASC。
所以我的问题是:
如何在路线中创建网址,并结合:页面,以获取特定的排序和方向?
如果您需要更多信息,请与我们联系。
提前谢谢你=]
答案 0 :(得分:0)
您最好查看其他网络代理商网站,了解他们如何进行过滤。看下面的链接,看看如何传递参数......例如
现在让我们回答你的问题......传递你需要使用的所有参数/ **例如
Router::connect(
'/action_name/**', //once you requesting rather than star you need to put your parameters
array('controller' => 'pages', 'action' => 'show')
);
//www.exsmple.com/action_name/parameters here...
您还可以自定义分页类from here