上一节我们使用Yii的工具创建了项目, 并创建了我们会用到的model代码和controller代码, 从本节开始, 我们将不断的接触MVC, 不断的完善我们的系统.
打开protected\models\User.php文件, 修改我们的User Model.
首先修改Model指向的表名, 将tableName()里面return的内容改成users, 如下:
public function tableName() { return 'users'; }
用户注册的时候, 我们需要用户来输入他喜欢的密码, 需要一个密码确认的字段, 为了防止机器人程序恶意注册, 我们还需要一个验证码字段, 所以要在User这个类里加入2个属性: passwordConfirm和verifyCode, 代码如下:
public $passwordConfirm; public $verifyCode;
下面我们来添加User的字段验证规则.根据我们的需求, username, password, passwordConfirm, email和verifyCode都是必填项, 所以需要添加如下的规则:
array(‘username, password, passwordConfirm, email, verifyCode’, ‘required’)
另外, 我们希望用户名和nickname唯一, 就需要添加以下的规则:
array(‘username’, ‘unique’),
array(‘nickname’, ‘unique’)
注册的时候, 用户需要输入两遍密码以确保没有把密码输错, 这里就需要passwordConfirm字段的值等于password了, 可以使用以下的规则:
array(‘passwordConfirm’, ‘compare’, ‘compareAttribute’ => ‘password’)
这个规则的意思是, passwordConfirm的值必须与password相同.
这样, 我们完成好的验证规则就应该像下面的代码:
public function rules() { return array( array('username, password, passwordConfirm, email, verifyCode', 'required'), array('username', 'unique'), array('username', 'length', 'min' => 5, 'max' => 12), array('password', 'length', 'min' => 5, 'max' => 12), array('nickname', 'length', 'min' => 4, 'max' => 20), array('nickname', 'unique'), array('verifyCode', 'captcha'), array('passwordConfirm', 'compare', 'compareAttribute' => 'password'), ); }
Yii的model里有个特殊的地方就是, 它可以保护字段的安全性, 所有