cakePHP路由器恼人的分页系统



输入address: http://www.yourdomain.com/2(不含page:2)

它给你Missing View:(错误)

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 In config)

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

尝试手动添加所有已命名的参数到路由配置:

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

与错误消息所示的一样,您需要有一个名为2的文件。CTP在你的pages文件夹

确认你已经创建了文件:/用户/用户名/网站/mycakeapp/视图/页/2. ctp

pages_controller中的display方法一般用于显示静态页面。一个以你发送的参数命名的文件,在你的例子中是2,后面跟着'。Ctp '必须存在于view/pages文件夹中,这就是错误信息告诉你的。

如果你在期待别的事情,你做得不对。

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

add in controller page:

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

不需要添加Router::connectNamed

最新更新