# 1. 基础路由规则
已如下URL为例:
http://localhost/dloa/index1.php?model=stock\_productinfo\_productinfo&action=toProInfoTypePage
通过index的基础路由代码我们可以定位到如下文件:
controller/productinfo/productinfo.php 文件里面的toProInfoTypePage这个方法
![](https://img.kancloud.cn/2b/48/2b48adce35742025a68d9f73ba2124e4_530x701.png)
# 2. 跳转到页面
页面的跳转通过控制层controller来进行控制跳转。
![](https://img.kancloud.cn/2f/18/2f1875e7b3fe4ff326a51b5c332b23c5_1287x455.png)
![](https://img.kancloud.cn/34/17/34174c1c1b271546dfdf7984988dd6a1_1319x299.png)
1. URL地址model的值为路径及对象名,action的值为控制层的方法名。
2. view()方法为基类封装好的方法,控制跳转到具体的模板。方法的参数只需要传对象名的后一部分。如跳转到模板task-list.htm,则只需要传参数“list”即可。
# 3. 控制层基类公用方法
控制层基础类,所有的控制层类都应该基础此类,用于初始化工厂类,基础的业务逻辑层类,公用控制层参数如分页参数等也应该放在此类。
基类action封装了很多方法,如果每一业务没有涉及到复杂的控制,都可以直接调用基类的方法,从而减少代码量。
初次接触该框架时,可以对基类的方法粗略过一两遍,有个大概的印象,到使用时可以清楚直接调用基类里的某一个方法。
**控制层开发注意事项**
1. 控制层所有的方法,都必须以”c\_”+方法名的规则来命名,否则无法识别该方法
2. 调用本业务MODEL层方法:$this->service->方法名();
# 4. 视图层VIEW开发
视图层主要存放html模板文件及js文件,所有的模板文件都必须放在该目录下。
![](https://img.kancloud.cn/c5/5e/c55e4e5902c79d21bc9b5b978975d0ef_531x707.png)![](https://img.kancloud.cn/c5/5e/c55e4e5902c79d21bc9b5b978975d0ef_531x707.png)
**模板页面,值的替换。涉及到数据值的替换,都统一用{字段名}这样的形式。**
![](https://img.kancloud.cn/c5/e7/c5e7c1d3607666d224f3255e5e0a8be3_1087x681.png)
控制所对应的方法为:
![](https://img.kancloud.cn/ab/8a/ab8a15dc4a65bd67a46c602548367a49_720x270.png)
# 5. 逻辑层MODEL开发
所有业务的逻辑层都必须要继承类model\_base。
![](https://img.kancloud.cn/20/0d/200d6c23f32c793152edab7d62b08b62_1157x388.png)
1. $this\->tbl\_name为所对应的表名
2. $this\->sql\_map为所对应的sql配置文件
### **新增方法add\_d()例子**
若新增业务不涉及到其他事务的处理,只是单纯的字段数据保存,可直接调用父类的add\_d方法,也就是说不用再重重写add\_方法。
若新增业务涉及到其他事务的处理,则需要重写add\_d方法:
![](https://img.kancloud.cn/b6/cc/b6cc9c46026e97454f617308eed7fdc5_1111x571.png)
如图所示,该新增业务,处理了数据字典,邮件发送等事务,所以需要重写新增方法。但本新增方法还是会调用父类的新增方法,减少代码量,实现代码的可重用性。
### **Sql配置文件**
第一个业务都会有一个对应的sql配置文件。
![](https://img.kancloud.cn/13/e3/13e3f80b74f1887bd1ef01346e58a9b2_1177x504.png)
1. $sql\_arr为查询sql数组,定义不同的查询语句
2. $condition\_arr为查询字段数组。通过传不同的key值来实现不同条件的查询调用实例:
![](https://img.kancloud.cn/44/4d/444d8043c57ce6bc105e3aaa19883c8d_896x492.png)
- 架构
- 基础框架文档
- base/action(C层基类)
- protected 类定义
- __construct构造函数
- c_list
- c_index
- c_page
- c_pageJson
- c_listJson
- c_getByAjax
- c_getCountByName
- c_toAdd
- c_add
- c_init
- c_edit
- c_deletes
- c_ajaxdeletes
- c_saveBatch
- c_checkRepeat
- getDatadicts
- showDatadicts
- getDataNameByCode
- assign
- display
- view
- assignFunc
- model/base(M层基类)
- protected类定义(model)
- __construct
- find
- get_table_fields
- findAll
- findSql
- create
- delete
- findBy
- updateField
- query
- findCount
- update
- filterFunc
- filterField
- filterWithoutField
- filterCustom
- createBatch
- pageBySql
- listBySql
- pageBySqlId
- deletes
- 事务控制
- 获取对象数组
- addBatch_d
- add_d
- edit_d
- isRepeat
- 列表组件文档
- 基础表格
- 数据获取
- 表格数据显示
- 常用控制参数
- 表格右键扩展
- 表格扩展按钮
- 快速搜索
- 高级搜索(自定义视图)
- 表格注册事件
- 主从表格
- 可编辑表格
- 模块开发
- 开发案例
- 开发准则