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开发大型项目的一点经验
Oct 09 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
PHP重定向的3种方式
Mar 07 PHP
基于PHP编程注意事项的小结
Apr 27 PHP
基于Zookeeper的使用详解
May 02 PHP
discuz目录文件资料汇总
Dec 30 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
详细解读php的命名空间(二)
Feb 21 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
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现获取网站PR及百度权重
2015/01/21 Python
分享6个隐藏的python功能
2017/12/07 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
人事专员岗位职责
2013/11/20 职场文书
上班上网检讨书
2014/01/29 职场文书
有创意的广告词
2014/03/18 职场文书
大学生就业策划书范文
2014/04/04 职场文书
安全施工标语
2014/06/07 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
2016年寒假家长评语
2015/10/10 职场文书
2016特色励志班级口号
2015/12/24 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书