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访问查询mysql数据的三种方法
Oct 09 PHP
php学习之 数组声明
Jun 09 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
获取URL文件名后缀
Oct 24 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
php遍历数组的4种方法总结
Jul 05 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
php生成高清缩略图实例详解
Dec 07 PHP
关于PHP中Session文件过多的问题及session文件保存位置
Mar 17 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 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函数与传递参数实例分析
2014/11/15 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
php图像验证码生成代码
2017/06/08 PHP
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
使用Vue写一个datepicker的示例
2018/01/27 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python 算法 排序实现快速排序
2012/06/05 Python
python实现数通设备端口监控示例
2014/04/02 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
html5绘制时钟动画
2014/12/15 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
公司担保书格式范文
2014/05/12 职场文书
篝火晚会策划方案
2014/05/16 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
Python如何用re模块实现简易tokenizer
2022/05/02 Python
python绘制云雨图raincloud plot
2022/08/05 Python