Yii 新加model属性

我们初期设计好数据模型后(模型有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'),
                  );
        }

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *