Yii2.0学习第18课:模型(Models)之应用场景

2025-11-22 07:13:39

1、运行并访问RegisterController.php,查看需要验证的字段信息:

(1)用户名;

(2)邮箱;

(3)密码。

Yii2.0学习第18课:模型(Models)之应用场景

Yii2.0学习第18课:模型(Models)之应用场景

2、参看“模型之验证规则”的说明,创建(或修改)我们的LoginController.php,得到的需要验证的字段信息:

(1)用户名;

(2)密码;

Yii2.0学习第18课:模型(Models)之应用场景

Yii2.0学习第18课:模型(Models)之应用场景

3、步骤1和步骤2中使用了同一个app\models\HlongUser.php,我们查看其验证规则,由于两个场景需要验证的信息是不一样的。登陆一般是不需要验证邮箱的。我们当然可以将HlongUser.php拆分长登陆模型和注册模型。但是Yii2.0强大的场景处理,给我们提供了一个很好的方法。

Yii2.0学习第18课:模型(Models)之应用场景

Yii2.0学习第18课:模型(Models)之应用场景

4、打开app\models\HlongUser.php,贴入以下代码:

const SCENARIO_LOGIN = 'login';   

const SCENARIO_REGISTER = 'register';   

public function scenarios()   

{       

return [           

self::SCENARIO_LOGIN => ['username', 'password'],           

self::SCENARIO_REGISTER => ['username', 'email', 'password'],       

];   

}

Yii2.0学习第18课:模型(Models)之应用场景

5、这时候还没有结束,你可以尝试重新访问Login或Register并提交数据会发现如下错误,原因是我们在控制器中没有设置场景,系统调用默认场景default导致出错:

Yii2.0学习第18课:模型(Models)之应用场景

6、分别在两种场景的控制器内添加场景的调用:

(1)登陆:$model = new User(['scenario' => 'login']);

(1)注册:$model = new User(['scenario' => 'register']);

Yii2.0学习第18课:模型(Models)之应用场景

Yii2.0学习第18课:模型(Models)之应用场景

7、再次访问Login和Register并提交数据,查看效果:

Yii2.0学习第18课:模型(Models)之应用场景

Yii2.0学习第18课:模型(Models)之应用场景

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢