使用model的save时候返回失败 打印日志也没找到端倪。狗之查了些资料。现在分享出来
- public function rules()
- {
- return array(
- array('username, password, captcha', 'required', 'on'=>'login,create'),
- array('username', 'unique', 'on'=>'create'),
- <span style="white-space:pre"> </span>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