cakePHP路由器用分页系统烦我

时间:2011-11-05 16:45:01

标签: cakephp pagination router

当我输入地址:http://www.yourdomain.com/2(没有页面:2)

它给你缺少视图:(错误)

Missing View

Error: The view for PagesController::display() was not found.

Error: Confirm you have created the file: /Users/username/Sites/mycakeapp/views/pages/2.ctp

Notice: If you want to customize this error message, create /views/errors/missing_view.ctp

在路由器配置中:(配置中的routes.php)

$chk = array('page' => '[0-9]');

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

Router::connect('/:page/*', array('controller' => 'pages', 'action' => 'display'), array(
            'page' => $chk['page'], 'pass' => array('page')
        ));

在pages_controller.php中:

function display($on_page=1) {
$this->paginate = array(
'limit' => $this->Cookie->read('pagelimit'),
'page' => $on_page,
'order' => array(
'data.dateadded' => 'asc'
));
$data = $this->paginate('data');
$this->set('data', $data);

$this->render(implode('/', $path));
$this->set('title_for_layout', null);
}

3 个答案:

答案 0 :(得分:1)

尝试手动将所有命名参数添加到路径配置中:

Router::connectNamed(array('page'[, ...]);

答案 1 :(得分:0)

与错误消息状态一样,您需要在页面文件夹中有一个名为2.ctp的文件。

  

确认您已创建该文件:   /Users/username/Sites/mycakeapp/views/pages/2.ctp

pages_controller中的显示方法通常用于显示静态页面。在您的案例2中以您发送的参数命名的文件,后跟“.ctp”必须存在于view / pages文件夹中,这是错误消息告诉您的。

如果您对其他事物有所期待,那么您做得不对。

答案 2 :(得分:0)

我发现问题已经解决了。答案是:

添加控制器页面:

$this->render('/pages/home');

无需添加Router :: connectNamed