我们初期设计好数据模型后(模型有Yii根据表的结构自动生成),发现需求有变动,需要添加新的。
通常的步骤是:
1. 首先改变数据库中表的结构,添加对应的字段。
2. 在attributeLabels(),添加对应标签名。
3. 在视图中添加对应的输入框,以便用户可以输入。
然后,我们去到create的页面,看到我们刚才添加的字段已经有对应的输入,然后输入值,点击create。
但是,你会发现你输入的数据根本没有保存进数据库中。
此时你可以通过
_POST
变量查看,是否有我们刚才添加的字段post到服务器,发现有,名字也是对的,但是为什么Yii 就没有存进去?
原因是我们没有在
rules()
中添加我们的字段,因为Yii是根据rules这个返回的数组来校验数据的,如果这个数组中没有这个字段,这个字段不会被处理,也不会被保存。
public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs. return array( array('name, code, datedetected', 'required'), ); }
关于如何定义rules,请参考:
http://www.yiiframework.com/wiki/56/
如何你对字段没有特别要求,只是想让Yii保存进入数据库而已,就定义为safe就可以,
public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs. return array( array('name, code, datedetected', 'required'), array('status', 'safe'), ); }
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.