脚本宝典收集整理的这篇文章主要介绍了Yii2中的场景(scenario)和验证规则(rule)详解,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
场景,顾名思义,就是一个情景,一种场面。在yii2中也有场景,这个场景跟你所理解的场景含义差不多。
和用户有交互的系统必不可少的功能包括收集用户数据、校验和处理。实际业务中,往往还需要将数据进行持久化存储。出于安全考虑,开发人员应当牢牢把握“客户端的输入都是不可信”的准则,客户端传过来的数据先进行过滤和清洗后再存储或传递到内部系统。
Yii2推荐使用Model类来收集和校验用户数据,持久化的ActiveRecord类是其子类。Model类的load和validate两个方法,分别用来收集和校验客户端数据。哪些数据应该被收集,哪些数据需要在什么场景下验证,便是本文的主题:场景(scenario)和验证规则(rule)。
下面话不多说了,来随着小编一起看看详细的介绍吧。
先引入一个简单的业务系统:系统中存在学生和教师两种角色,数据库中使用了三张表保存角色信息:
user: [id,username,password,status,其他通用属性]
student: [id,user_id,student_no,grade,class,其他学生属性]
teacher: [id,work_no,tITle,telphone,其他教师属性]
实际业务不限于对这三张表的增删查改操作。为了简化问题,后续仅讨论user和student两张表的数据变更(给出teacher表是为了让读者不认为设计数据库的人是脑残:明明可以放到一张表的,为什么要拆开!)。
学生报名是典型的增删查改操作,送分题。学生报名的简要代码示例如下:
request->post(); $user = new User(); $user->load($data); if ($user->save()) { $student = new Student([ "user_id" => $user->id,]); $student->load($data); if ($student->save()) { // redirect to success page } else { $user->delete(); } } // render error page }
以上是脚本宝典为你收集整理的Yii2中的场景(scenario)和验证规则(rule)详解全部内容,希望文章能够帮你解决Yii2中的场景(scenario)和验证规则(rule)详解所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。