0

我有一个名为“列表”的控制器。它只是在从数据库中检索用户后列出用户。视图有分页,但这是我自己的分页。我想做的是:

www.example.com/list/<page_num> --> show records belongs to page number given
www.example.com/list --> show first page, i.e. it is equal to '...com/list/1'

为此,我有这样的路线:

$route['list/(:num)'] = "list/index/$1";

当我想在页面锚点处将链接分配给 href 时,就会出现问题。例如,当我为第二页设置链接(如 href="list/2")时,'list' 字会加到 uri 中,点击几下后,我得到如下信息:

www.example.com/list/list/list/3

如果我使用 href="2",则链接变为

www.example.com/2

这是无效的。我可以在控制器名称的末尾使用“/”,我的意思是代替使用“...com/list”,我可以使用“...com/list/”,但这不是我认为的最佳解决方案一些用户想要“美化”它,删除最后的斜线。我已经足够对每个链接、img、css 等使用 base_url 了!这个问题有解决方案吗?

4

1 回答 1

1

我会让代码类似于这个

function index() {

    redirect('list/1'); //whatever default or you can try _remap()

}

function list( $page = FALSE ) {

    if ($page === FALSE || !$this->_validPageFunction( $page )) $page = '1';

    //... whatever needs to be done here

}

private function _validPageFunction( $page ) {

    // return FALSE (not-valid) or TRUE (valid)

}

旁注:尽量不要太在意路由,使用index()函数重定向到默认值,路由可能/变得混乱

旁注2:始终base_url('');用于链接。

于 2013-09-05T02:00:04.400 回答