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数据结构与算法(PHP描述) 查找与二分法查找
Jun 21 PHP
php标签云的实现代码
Oct 10 PHP
php ios推送(代码)
Jul 01 PHP
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
PHP操作XML中XPath的应用示例
Jul 04 PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 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的开合式多级菜单程序
2006/10/09 PHP
php 缓存函数代码
2008/08/27 PHP
php生成缩略图的类代码
2008/10/02 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
PHP实现文件下载详解
2014/11/27 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
浅谈php7的重大新特性
2015/10/23 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
javascript显示选择目录对话框的代码
2008/11/10 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
Python闭包函数定义与用法分析
2018/07/20 Python
python实现浪漫的烟花秀
2019/01/30 Python
Django 静态文件配置过程详解
2019/07/23 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
UNIX命令速查表
2012/03/10 面试题
软件工程师岗位职责
2013/11/16 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
作弊检讨书
2015/01/27 职场文书
学校施工安全责任书
2015/01/29 职场文书
教师节主题班会方案
2015/08/17 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL