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文本操作类
Nov 25 PHP
表单复选框向PHP传输数据的代码
Nov 13 PHP
php AJAX实例根据邮编自动完成地址信息
Nov 23 PHP
php 图片上传类代码
Jul 17 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
php获取域名的google收录示例
Mar 24 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
php微信公众号开发之简答题
Oct 20 PHP
Laravel框架查询构造器简单示例
May 08 PHP
Yii redis集合的基本使用教程
Jun 14 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
js 调整select 位置的函数
2008/02/21 Javascript
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
Python yield使用方法示例
2013/12/04 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
Python实现网站表单提交和模板
2019/01/15 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
通过cmd进入python的步骤
2020/06/16 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
学习心得体会
2014/01/01 职场文书
考试退步检讨书
2014/01/15 职场文书
微观物理专业自荐信
2014/01/26 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
小鞋子观后感
2015/06/05 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
Python编程编写完善的命令行工具
2021/09/15 Python