php-ci-route CI的URI路由使用
CI开发商品列表页时,可以使用CI框架自带的URI路由,这样可以避免在apache中做伪静态规则,程序如果迁移,就不用改apache配置。
如何用CI框架URI 路由:
列表页:
TODO:
- [ ] 筛选面板的a标签href如何产生。
- [ ] 把my_helper中的getListHref写成灵活的类。
URL实例:
products.ljlj.cc/
list-brand100-category120-attr12-factor30-search红苹果-page9-sort1.html
解释:brand代表品牌,category商品分类,attr后面分别是商品属性的id,factor素数因子的乘机,search代表搜索的关键词(即商品名称),page代表当前分页数,sort代表排序字段(1代表销量、2代表浏览量,3代表新品)。
同时商品属性id和传递“素数因子的乘机”,每个属性的href的factor直接算出“素数因子的乘机”,如:2×3×5=30。
利用任何一个整数都能拆分成几个素数的乘机的特性,可以实现商品属性的联合选择,如:绿色、木质、带躺位的沙发。
factor用于列表页的筛选面板。mysql的取余函数:mod,如:5 mod 2 = 1。
注:用户没有选择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
4function index($brand, $category, $attr, $factor, $search, $page, $sort)
{
var_dump($brand, $category, $attr, $factor, $search, $page, $sort);
}
1 | //helper |
PS:
测试代码