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的FTP学习(二)
Oct 09 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
Dec 19 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
CI框架中cookie的操作方法分析
Dec 12 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
Symfony2之session与cookie用法小结
Mar 18 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 PHP
php生成HTML文件的类方法
Oct 11 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
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
php实现rc4加密算法代码
2012/04/25 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
jQuery 页面 Mask实现代码
2010/01/09 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
require.js中的define函数详解
2017/07/10 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
Python批量修改文件后缀的方法
2014/01/26 Python
Python简单日志处理类分享
2015/02/14 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python变量作用范围实例分析
2015/07/07 Python
Python matplotlib可视化实例解析
2020/06/01 Python
Python实现验证码识别
2020/06/15 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
大学生就业自我鉴定
2013/10/26 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
优秀员工推荐材料
2014/12/20 职场文书
挂职个人工作总结
2015/03/05 职场文书
立案决定书范文
2015/06/24 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python