Yii 2.0中场景的使用教程


Posted in PHP onJune 02, 2017

前言

熟悉Yii框架的人都知道,灵活的使用场景可以达到事半功倍的效果!

比如普通的数据的新增、修改,新增需要验证其中两个字段,而修改只需要验证其中一个字段;还有种情况,也是我们现在用到的,同一张表(同一个model)有可能在不同的项目分支中使用,但是不用的项目分支对成员变量的验证是不一样的,这时使用场景就可以轻松搞定;

场景使用

1、Yii2中简单的场景使用在这里有说明: https://3water.com/article/115231.htm

2、但是对于初学者可能还是不能灵活的应用:

public function rules()
 {
 return [
  [['name', 'account', 'pwd'], 'string', 'max' => 11],
  ['account','required','message'=>'用户名不能为空'],
  ['pwd','required','message'=>'密码不能为空','on'=>'add_customer']
 ];
 }

对于rules中指定部分成员变量的验证规则以及所属场景,还是推荐上面这种写法,当然也可以直接在类里面定义一个方法名为scenarios的方法;

如何使用:

1、如果需要new一个新的对象就使用某个场景,直接采用:

$bus_department = new BusDepartment(['scenario' => 'add_customer']);

2、更新数据的时候经常会用到这种:

$bus_department = BusDepartment::findOne($id);

使用场景的方法是:

$bus_department->setScenario('add_customer'); 或者 $bus_department->scenario = 'add_customer';

这样,在操作当前对象的时候就会按照所设定的场景进行规则验证。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php完全过滤HTML,JS,CSS等标签
Jan 16 PHP
PHP 代码规范小结
Mar 08 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
destoon二次开发模板及调用语法汇总
Jun 21 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
php die()与exit()的区别实例详解
Dec 03 PHP
php实现的中文分词类完整实例
Feb 06 PHP
yii2 resetful 授权验证详解
May 18 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
Mar 22 PHP
详解PHP5.6.30与Apache2.4.x配置
Jun 02 #PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 #PHP
php从数据库中读取特定的行(实例)
Jun 02 #PHP
php获取数据库结果集方法(推荐)
Jun 01 #PHP
php获取数据库中数据的实现方法
Jun 01 #PHP
PHP用户注册邮件激活账户的实现代码
May 31 #PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 30 #PHP
You might like
cache_lite试用
2007/02/14 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
Javascript的&&和||的另类用法
2014/07/23 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
JS & JQuery 动态添加 select option
2016/06/08 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
python实现apahce网站日志分析示例
2014/04/02 Python
python的类方法和静态方法
2014/12/13 Python
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
在Python中表示一个对象的方法
2019/06/25 Python
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
学校先进集体事迹材料
2014/05/31 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
通知书大全
2015/04/27 职场文书