RT、
使用model的save时候返回失败 打印日志也没找到端倪。狗之查了些资料。现在分享出来
public function rules()
{
return array(
array('username, password, captcha', 'required', 'on'=>'login,create'),
array('username', 'unique', 'on'=>'create'),
array('password2','required','on'=>'create'),
array('captcha', 'captcha', 'allowEmpty'=>!extension_loaded('gd'), 'on'=>'login,create'),
//验证密码和确认密码
array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",'on'=>'create'),
);
}
注意这里我是有写
array('password2','required','on'=>'create'),
前端控制器 我写的是 public function actionIndex(){
$model = new User('create');
if(isset($_POST['User'])){
$model->attributes = $_POST['User'];
if($model->validate() ){
$a = $model->save(false);// 注意这里 当时我没写 false
}
}
这样的原因就是。rules规则里 把我写的password2当做了数据库字段,必须要保存的。但是实际表里没有这个字段
解决办法
一 是去掉跟password2有关的规则
二 就是上面说的在save的时候把属性设置为false