Model:用来保存用户输入和验证用户输入的地方。
根据我们对用户输入的使用方式,我们可以创建两种类型的Model。
1、如果,我们只是获取用户的输入,在使用后,就丢弃,那么我们创建一个 Form Model(即继承自CFormModel)。
2、如果,我们在获取到用户输入后,需要存到数据库中,那么我们创建一个 Active Record(即继承自CActiveRecord)
这两种类型的Model 共享一个基类 CModel,所以除了功能有不同外,没什么大的区别。
以下以CFormModel为例。
1、为了保存用户输入,我们需要创建 成员来存数据。当然,这些要能与表单结构相对应。
1、首先在 protected/models中创建 LoginForm.php
2、增加成员变量
class LoginForm extens CFormModel { public $username; public $password; public $rememberMe = false;
2、为验证用户输入,需要定义一个rules()方法。
class LoginForm extends CFormModel { public $username; public $password; public $rememberMe = false; public function rules() { return array( array('username, password', 'required'), array('rememberMe', 'boolean'), ); } }
验证的格式是:array(‘AttributteList’, 'Validator', 'on'=>'ScenarioList', ...addtional options);其中:AttribueList,是由多个 成员 以逗号隔开 组成的一个字符串。
Validator ,有三种方式,
第一种,在Model内定义,这种方式下,它一定要有如下格式的签名
public function authentic($attribute, $params)
第二种,验证器(Validator)是一个验证器类名。
第三种,验证器可以是一个验证器类的 预定义别名(predefined alias)。如上例中,required 是
CRequiredValidor的别名,确保该 属性 不能为 空。