在cakephp中制作自定义URL分页

时间:2015-01-23 05:34:40

标签: cakephp

我是cakephp的新手

第一次加载这样的网址

http://domain.com/td/city

http://domain.com/td/是静态的

城市是一个充满活力的

在分页中显示网址

http://domain.com/controller/action/city/page:2

但我希望在分页中使用这样的网址

http://domain.com/td/city/2

请帮我解决这个问题

更新: 我不想要"控制器","行动"和"页面:" url中的关键字

我的路线定义是

Router::Connect('/td/:city/*', 
    array('controller' => 'properties', 'action' => 'citybasedproperties' ),
    array('city' => '[a-z0-9-]+', // regex again to ensure a valid city or 404
          'pass' => array('city') // I just want to pass through city to my controller
));  

2 个答案:

答案 0 :(得分:2)

http://www.website.com/post/page:2

我们想将其更改为

http://www.website.com/post/page/2

<强> 1。 /app/Config/routes.php 添加或修改现有路线

    Router::connect('/post/page/:page', array(
     'controller' => 'post',
     'action' => 'index'
    ), array(
    'pass' => array(
        'page'
    ),
     'page' => '[\d]+'
   ));

<强> 2。 /app/Controller/PostsController.php

添加或修改现有控制器

public function index($page = 1) {
// ...
$this->request->params['named']['page'] = $page;
// ...
}

第3。 /app/View/Posts/index.ctp

添加或修改现有视图

$paginator->options(array(
   'url'=> array(
   'controller' => 'post',
   'action' => 'index'
)));

您应该阅读这篇文章SEO Friendly URL in CakePHP Pagination

答案 1 :(得分:0)

阅读the Routing chapter of the documentation它通过一个例子介绍了这种情况,并解释了CakePHP中的路由是如何工作的。我建议您实际上阅读并尝试理解整个页面,而不仅仅是复制和粘贴示例。