我正在使用CakePHP v2.42 &希望在页面分页中具有SEO友好的URL。
我现在的分页就像
http://www.website.com/ubs/page/page:2
该做些什么
http://www.website.com/ubs/page/2
我的主计长
<?php
class UbsController extends AppController {
public $helpers = array('Html', 'Form');
public function index() {
$this->paginate = array(
'limit' => 100,
);
$ubs = $this->paginate();
$this->set('ubs', $ubs);
}}
我的路由器是
Router::connect('/ubs', array('controller' => 'ubs', 'action' => 'index'));
Router::connect('/ubs/page/*', array('controller' => 'ubs', 'action' => 'index'));
编辑-添加更多问题
@kicaj的回答对于路由器和控制器来说是完全正确的。但是,导航链接仅在第一页上正确显示。
在第一页导航链接中,显示如下所示:
http://www.website.com/ubs/
http://www.website.com/ubs/page/2/
http://www.website.com/ubs/page/3/
但是导航链接在第二页/第三页显示如下
http://www.website.com/ubs/index/2/
http://www.website.com/ubs/index/2/page:3/
我猜需要编辑index.ctp文件,但不知道该做什么。
我在index.ctp中的当前导航链接如下所示
$paginator = $this->Paginator;
$paginator->prev("« Prev");
$paginator->numbers(array('modulus' => 200, 'separator' => ' '));
$paginator->next("Next »");
应该更改什么来纠正这个问题?
发布于 2014-01-04 01:38:01
试试这个:
Router::connect('/ubs/page/:page', array(
'controller' => 'ubs',
'action' => 'index'
), array(
'pass' => array(
'page'
),
'page' => '[\d]+'
));
在瑞银( ubs )的指数行动中,控制器添加以下代码:
public function index($page = 1) {
// ...
$this->request->params['named']['page'] = $page;
// ...
}
发布于 2014-01-04 11:08:14
在分页器帮助程序中,您可以通过设置一些选项来选择所需的友好url。
url
分页操作的URL。‘’url‘也有几个子选项:sort
排序的键。direction
排序的方向。默认为“ASC”。page
要显示的页码。
这里有个例子。
$this->Paginator->options(array(
'url' => array(
'sort' => 'email', 'direction' => 'desc', 'page' => 6,
'lang' => 'en'
)
));
https://stackoverflow.com/questions/20918375
复制相似问题