yii2.0框架场景的简单使用示例


Posted in PHP onJanuary 25, 2020

本文实例讲述了yii2.0框架场景的简单使用。分享给大家供大家参考,具体如下:

一、规则中使用场景

规则场景的使用

模型层

public function rules()
{
  return [
    [['name','product_id'],'required','on'=>'add],
  ];
}

表示只在add场景下改规则才生效。

在控制器中指定场景:

$model->scenario = "add";

或者

$model = new User(['scenario' => 'add']);

最后使用函数触发验证:

$model->load(Yii::$app->request->post()) //加载值
$model->validate() //证规则

当验证不通过时可以直接刷新页面

return $this->refresh();

二、场景方法定义字段在固定场景下才能被修改

模型层

public function scenarios()
{
  return [
    'default' => ['table_name', 'field_name'],//默认所有场景都可以操作
 'add' => ['age', 'name'],
 'update' => ['age'],
  ];
}

表示:

添加场景(add) 只会添加 age和name两个字段的值到数据库

修改场景(uodate)只会把age的值修改

所以一般情况下是不会重写scenarios方法,当动态增加字段时还得手动修改方法里的字段

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
十天学会php(1)
Oct 09 PHP
php中通过smtp发邮件的类,测试通过
Jan 22 PHP
php 启动报错如何解决
Jan 17 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
php去除数组中重复数据
Nov 18 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
php通过rmdir删除目录的简单用法
Mar 18 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
一张表搞清楚php is_null、empty、isset的区别
Jul 07 PHP
php blowfish加密解密算法
Jul 02 PHP
PHP 爬取网页的主要方法
Jul 13 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 #PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 #PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 #PHP
laravel框架中间件简单使用方法示例
Jan 25 #PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 #PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 #PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 #PHP
You might like
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
用PHP实现将GB编码转换为UTF8
2006/11/25 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
keras:model.compile损失函数的用法
2020/07/01 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
计算机专业职业生涯规划范文
2014/01/19 职场文书
优秀员工获奖感言
2014/03/01 职场文书
医院见习报告范文
2014/11/03 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
学籍证明模板
2014/11/21 职场文书
法定授权委托证明书
2015/06/18 职场文书
远程教育学习心得体会
2016/01/23 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
python基础之停用词过滤详解
2021/04/21 Python
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
Python Django项目和应用的创建详解
2021/11/27 Python