CI 2.x升级到3.x

CI开发商品列表页时,可以使用CI框架自带的URI路由,这样可以避免在apache中做伪静态规则,程序如果迁移,就不用改apache配置。

如何用CI框架URI 路由:

列表页:

TODO:

  • [ ] 筛选面板的a标签href如何产生。
  • [ ] 把my_helper中的getListHref写成灵活的类。

官方指南
http://www.codeigniter.com/userguide3/installation/upgrade_300.html

解释

  • libraries, drivers, controllers and models 都必须首字母大写

注:用户没有选择brand时,也要用0占位。

路由规则定义在application/config/routes.php 文件中
CI的URI路由规则
$route[‘list-brand(:num)-category(:num)-attr(:num)-factor(:num)-search(:any)-page(:num)-sort(:num).html’]
= “list/index/$1/$2/$3/$4/$5/$6/$7”;
如何获得参数:

1
2
3
4
function index($brand, $category, $attr, $factor, $search, $page, $sort)
{

var_dump($brand, $category, $attr, $factor, $search, $page, $sort);
}

1
2
3
4
5
6
7
8
9
//helper
function getHref($name, $id)
{

$url = 'list-brand0-1cate0-2cate0-3cate0-attr0-factor0-search0-page1-sort1.html';
$defaultId = 0;
if( 'page'==$name || 'sort'==$name ) $defaultId = 1;
$urlNew = str_replace($name.$id, $name.$defaultId, $url);
return base_url($urlNew);
}

PS:
测试代码