以下针对单表
一、增:
a、 请求控制器insert操作,显示一个form表单,表单控件name属性值对应数据库字段
b、表单提交到控制器的insert操作,接收参数调用模型验证方法后,再调用模型添加方法添加数据到表。
二、删:
请求控制器delete操作,接收id调用模型删除方法。如果是逻辑删除,删除方法实际是对字段值更新
三、改:
a、 请求控制器update操作,比增多一个参数id,并调用模型方法查出当前id的数据行(返回php一维关联数组)。显示一个form表单,表单控件name属性值对应数据库字段,同时value值应显示为字段的值,并添加一个隐藏域作为提交数据的id参数.
b、表单提交到控制器的update操作,比增多一个参数id(post提交),接收参数调用模型验证方法后,再调用模型修改方法修改对应行的数据。
由于改比增form多一个显示数据功能,所以可以两个操作用同一个模板。但应注意提交的操作不同。增改操作参数难可调用模型同一个验证方法。四、查:
请求控制器的select/list操作,调用模型查询方法查询表多行数据(返回php二维数组-由一维关联数组组合起来),显示一个列表页,在列表页中用php循环出所有行数据(循环上面的php二维数组)。
在列表页通常有分页、搜索功能,可以后面添加,其实质是向select操作提交一些参数,参数对应到数据库字段,用在where子句或limit子句...
五、小结
数据库字段是关键:如一个标题(title变量)路程:在数据库表中字段名称为title,在表单中可以为title,在php中为变量$title。三者合一,其实如出一处,这样业务逻辑反应在数据库中,并与程序紧密联系起来了。
六、框架改进及不足:
增加:
1、显示模板方法:方法只要传入业务模板就可以,模板公用部分会自动添加进来;
2、分配变量方法:操作中用关联数组分配变量,在模板中从$output中取出,php标签可以直接用;
改进:
1、模型增加方法,是写sql原生语句,这样不方便,可以完善为$this->table()->add($data);
2、同样更新方法为$this->table()->where($str/$arr)->update($data);
3、删除方法为$this->table()->where($str/$arr)->delete($id);
4、查询方法为:$this->table()->where($str/$arr)->order()->group()->limit()->getList();