从零开始之ecshop基础篇上(22)_项目管理_非技术区_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 非技术区 > 项目管理 > 从零开始之ecshop基础篇上(22)

从零开始之ecshop基础篇上(22)

 2013/12/19 2:09:07  cnblogs`  博客园  我要评论(0)
  • 摘要:模型表名的处理真是表名=前缀+逻辑表名it_category=it_+category前缀,应该是可以被设置的,甚至逻辑表名都可能变化!显然,前缀应该可以被配置,而逻辑表名在模型类定义时,就确定了。在配置文件中,增加对前缀的配置application/config/application.config.php为模型增加保存当前表名属性拼凑真实表名在基础模型中,增加一个得到真实表名的方法Model.class.phpTips:最好使用反引号包裹!使用表名时,应该调用该方法:在模型中:场景
  • 标签:

模型表名的处理

????真是表名 = 前缀 + 逻辑表名????it_category = it_ + category

????前缀,应该是可以被设置的,甚至逻辑表名都可能变化!显然,前缀应该可以被配置,而逻辑表名在模型类定义时,就确定了。

在配置文件中,增加对前缀的配置

????application/config/application.config.php

????

为模型增加保存当前表名属性

????

拼凑真实表名

????在基础模型中,增加一个得到真实表名的方法????Model.class.php

????

????Tips:最好使用反引号包裹!

????使用表名时,应该调用该方法:

????在模型中:

????

????场景:利用ID查询分类的SQL

????select * from {$this->table()} where cat_id='$cat_id';

????分解:select * from 当前表名 where 主键字段=主键字段值

????以上的sql是否可以拼凑出来?可以,需要知道表的结构信息(哪个是主键)。

????delete from 表名 where 主键字段=主键值

得到表结构信息

????在模型上增加一个可以保存当前表的结构信息的属性,当模型被实例化是,该属性被初始化。

????例如:$field = array('cat_id', 'cat_name', 'parent_id', 'pk'=>'cat_id');

在基础模型上增加属性$fields

????

增加初始化字段信息的方法

????

在构造方法时调用:

基础模型中定义的构造:

利用主键找到记录

????应该在基础模型中,增加拼凑sql的方法,拼凑一条select利用主键查询SQL

????Model.class.php

????

????需要是使用:CategoryModel.class.php

????

????甚至可以将getById方法省略,控制器直接调用模型的getByPk方法即可:

????CategoryController.class.php

????

利用主键删除

????在基础模型Model.class.php中增加一个方法:deleteByPk()

????

获得某个表的所有记录

????获得列表,典型的需要条件????Model.class.php

????

利用数据插入记录

????拼凑:insert into 表名 (字段列表) values(值列表)

????需要的数据源,是一个关联数组,要求,数组的每个元素就是需要插入的字段值,数组元素的下标应该是字段名。

????$data 就是需要的。

????$data = array(cat_name =>'新分类名', parent_id => '父分类ID值');

????需要利用其拼凑出来:insert into it_category(cat_name, parent_id) values ('新分类名', '父分类ID值');

????在基础模型Model.class.php中增加方法insertData()

????

????

????

????拼凑的结果

????

????再增加数据时,使用该方法:CategroyModel.class.php????

????

????Tips:我们的插入,依赖于提供正确格式的$data数组才可以,保证正确的键即可。

检测字段错误

????是否可以检测出来用户使用的数组格式是否正确呢?

????知道表的所有字段,判断元素下表是否在字段名列表内即可。

????

利用数据更新记录

????拼凑:update 表名 set 字段=值,字段=值 where 条件

????分析:有$data关联数组,就可以得到字段和值

????条件如何确定?如果$data内,存在主键字段元素,则可以确定记录。

????再增加一个条件参数,price>100,也可以作为条件

????没有存在?认为不允许更新。

????

????结构上的处理

将MySQLDB改成单例

????增加三私一公:MySQLDB.class.php

????构造函数的参数如何传递?先将参数传入到getInstance方法中,再将参数传递给构造函数

????

????该方法得到对象:SessionDBTool

????

????基础模型类:Model.class.php

????

???? ?

商品表

????

添加新商品

添加表单

控制器

????增加一个商品管理控制器类模块

????controller/back/GoodsController.class.php

????增加展示添加表单的办法:

????

模型

视图

????增加模板

????做一个4个页面的选项卡

????

????删除掉不需要的代码,需要增加两个js文件:

????

????

其他

增加链接

处理添加数据

  • 相关文章
发表评论
用户名: 匿名