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 相关文章推荐
网站当前的在线人数
Oct 09 PHP
如何在PHP程序中防止盗链
Apr 09 PHP
程序员编程十条戒律
Jul 09 PHP
PHP Memcached应用实现代码
Feb 08 PHP
php购物车实现代码
Oct 10 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
解析php入库和出库
Jun 25 PHP
php实现httpRequest的方法
Mar 13 PHP
WordPress中"无法将上传的文件移动至"错误的解决方法
Jul 01 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 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
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
JQuery从头学起第二讲
2010/07/04 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
javascript的BOM汇总
2015/07/16 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
Javascript实现倒计时时差效果
2017/05/18 Javascript
使用JavaScript进行表单校验功能
2017/08/01 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
js判断节假日实例代码
2017/12/27 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
python找出完数的方法
2018/11/12 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
python+opencv实现车道线检测
2021/02/19 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
2014法制宣传日活动总结
2014/07/09 职场文书
校长四风对照检查材料
2014/09/27 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
工程部主管岗位职责
2015/02/12 职场文书
优秀团员自我评价
2015/03/10 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python