关于CForm与CActiveRecord [ 新手入门 ]
最近关于CForm与CActiveRecord,遇到了一些问题,在这里将自己理解的问题解决方案跟大家分享一下。
- CForm与CActiveRecord
1.1 CForm: 代表一个包含指定表单输入的表单对象.
其中loadData()方法:加载提交的数据到相关的表单模型中。 这个方法将穿过所有和这个表单相关的模型和子表单,大量的指派提交的数据到模型中。
1.2 CActiveRecord:代表关系数据的类的基类。 它实现了活动记录设计模式,一种流行的对象关系映射(ORM)技术。
其中save()方法:保存记录之前将执行验证。 如果验证失败,该记录将不会保存。
1.3 问题:如果表单中的属性没有经过rules的required验证,则在提交数据的时候,不能存入数据库。
解决:对于没有在rules中出现的字段,yii不对其进行交换。也就是在
$model->attributes=$_POST[]
时,不会有值。故应该添加$model->字段=$_POST[‘模型’][‘字段’]
,才能将值存入数据库。 1.4 问题:如果属性在rules中有required验证,而在数据表中没有与之相对应的字段,则在提交表单的时候会报错。 解决:如果在数据表中没有相对应的字段,则在model中需要自定义属性,同时这些属性在rules中不能有required验证。而为了让这些属性的数据能够存入数据库,在save()之前需要添加代码$model->字段=$_POST[‘模型’][‘字段’]
。
_ancientmoon
注册时间:2012-08-07
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱150
- 威望0
- 积分150