如何深入理解Yii2框架中的场景(scenario)与验证规则(rule)应用?

更新于
2026-09-24 14:31:09
0阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2392个文字,预计阅读时间需要10分钟。

如何深入理解Yii2框架中的场景(scenario)与验证规则(rule)应用?

前言+场景,命名思想,就是一个情境,一种场面。在yii2中也有场景,这个场景跟您理解的场景含义差异不大。和用户有交互的系统必不可少的功能包包括收集用户数据、验证和处理这些数据。实现细节如下:

前言

场景,顾名思义,就是一个情景,一种场面。在yii2中也有场景,这个场景跟你所理解的场景含义差不多。

和用户有交互的系统必不可少的功能包括收集用户数据、校验和处理。实际业务中,往往还需要将数据进行持久化存储。出于安全考虑,开发人员应当牢牢把握“客户端的输入都是不可信”的准则,客户端传过来的数据先进行过滤和清洗后再存储或传递到内部系统。

Yii2推荐使用Model类来收集和校验用户数据,持久化的ActiveRecord类是其子类。Model类的load和validate两个方法,分别用来收集和校验客户端数据。哪些数据应该被收集,哪些数据需要在什么场景下验证,便是本文的主题:场景(scenario)和验证规则(rule)。

下面话不多说了,来随着小编一起看看详细的介绍吧。

系统结构

先引入一个简单的业务系统:系统中存在学生和教师两种角色,数据库中使用了三张表保存角色信息:

user: [id, username, password, status, 其他通用属性]

student: [id, user_id, student_no, grade, class, 其他学生属性]

teacher: [id, user_id, work_no, title, telphone, 其他教师属性]

实际业务不限于对这三张表的增删查改操作。

阅读全文

本文共计2392个文字,预计阅读时间需要10分钟。

如何深入理解Yii2框架中的场景(scenario)与验证规则(rule)应用?

前言+场景,命名思想,就是一个情境,一种场面。在yii2中也有场景,这个场景跟您理解的场景含义差异不大。和用户有交互的系统必不可少的功能包包括收集用户数据、验证和处理这些数据。实现细节如下:

前言

场景,顾名思义,就是一个情景,一种场面。在yii2中也有场景,这个场景跟你所理解的场景含义差不多。

和用户有交互的系统必不可少的功能包括收集用户数据、校验和处理。实际业务中,往往还需要将数据进行持久化存储。出于安全考虑,开发人员应当牢牢把握“客户端的输入都是不可信”的准则,客户端传过来的数据先进行过滤和清洗后再存储或传递到内部系统。

Yii2推荐使用Model类来收集和校验用户数据,持久化的ActiveRecord类是其子类。Model类的load和validate两个方法,分别用来收集和校验客户端数据。哪些数据应该被收集,哪些数据需要在什么场景下验证,便是本文的主题:场景(scenario)和验证规则(rule)。

下面话不多说了,来随着小编一起看看详细的介绍吧。

系统结构

先引入一个简单的业务系统:系统中存在学生和教师两种角色,数据库中使用了三张表保存角色信息:

user: [id, username, password, status, 其他通用属性]

student: [id, user_id, student_no, grade, class, 其他学生属性]

teacher: [id, user_id, work_no, title, telphone, 其他教师属性]

实际业务不限于对这三张表的增删查改操作。

阅读全文