了解知识
由于AR类中的save函数是有两个参数的,第一个是验证是否打开,第二个是属性列表(默认为空)
所以如果更新或插入一条数据时,不符合你设定的rules要求,则调用save()不成功。
 
规则例子:
   
  1. public function rules() 
  2.    { 
  3.        // NOTE: you should only define rules for those attributes that 
  4.        // will receive user inputs. 
  5.        return array
  6.            array('typeid, sideid, title, zaiyao, thumb, comment, addtime, uptime''required'), 
  7.            array('typeid, sideid, addtime, uptime''numerical''integerOnly'=>true), 
  8.            array('title, thumb''length''max'=>50), 
  9.            array('zaiyao''length''max'=>200), 
  10.            // The following rule is used by search(). 
  11.            // Please remove those attributes that should not be searched. 
  12.            array('id, typeid, sideid, title, zaiyao, thumb, comment, addtime, uptime''safe''on'=>'search'), 
  13.        ); 
  14.    } 
 
调用:
 
  1. $post1 = new News; 
  2. $post1->title = 'hello world'
  3. $post1->comment = 'i am very good!'
  4. $post1->save(); 
 
由于规则中设定所有字段都要required,所有当插入的时候只有两个字段,则插入失败;解决方法自然就有两个,要么按照你设置的要求插入数据,要么在调用save()时设置的第一个函数为false;
标签: Yii框架
扩展知识