【问题标题】:make custom url pagination in cakephp在 cakephp 中进行自定义 url 分页
【发布时间】:2015-01-23 05:34:39
【问题描述】:

我是 cakephp 新手

第一次加载这样的网址

http://domain.com/td/city

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

城市是动态的

在分页中显示 url 像

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

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

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

请帮我解决这个问题

更新: 我不希望 url 中有“controller”、“action”和“page:”关键字

我的路线定义是

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
));  

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-07
        • 1970-01-01
        • 1970-01-01
        • 2015-08-20
        • 2012-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多