如果出现表单提交的数据得不到保存,
首先检查提交数据$_POST是否正确,如果提交数据是正确的,且直接使用SQL插入到数据库中也能成功的话,
那一般是因为数据满足不了Yii Model对用户输入校验所引起的。
1. 确保数据是用户输入安全的(safe)
使用rules方法批量设置Model属性为输入安全的
public function rules() {
return array(
array('username, password, gender,
email, tel', 'safe'),
);
}
2. 如果设置了场景(Scenario ),确保该场景匹配输入安全的规则
public function rules() {
......
array('gender, email, tel', 'safe', 'on'=> 'create,update'),
......
}
在属性设置前设置一下场景(Scenario),
...
$model->setScenario('create');
$model->attributes = $_POST['user'];
...
参考链接:
http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/