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 相关文章推荐
php5 图片验证码实现代码
Dec 11 PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
php输入数据统一类实例
Feb 23 PHP
php三元运算符知识汇总
Jul 02 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
PHP下载文件的函数实例代码
May 18 PHP
PHP实现对二维数组某个键排序的方法
Sep 14 PHP
PHP带节点操作的无限分类实现方法详解
Nov 09 PHP
PHP编写daemon process 实例详解
Nov 13 PHP
PHP实现登录验证码校验功能
May 17 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基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
PHP循环获取GET和POST值的代码
2008/04/09 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
九种原生js动画效果
2015/11/11 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
python获得一个月有多少天的方法
2015/06/04 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
给我一面国旗 python帮你实现
2019/09/30 Python
wxpython布局的实现方法
2019/11/01 Python
Python如何实现定时器功能
2020/05/28 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
C#实现启动一个进程
2016/10/01 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
DTD的含义以及作用
2014/01/26 面试题
打架检讨书100字
2014/01/08 职场文书
标准化管理实施方案
2014/02/25 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
工作作风建设心得体会
2014/10/22 职场文书
工作失职自我检讨书
2015/05/05 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书