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 破解防盗链图片函数
Dec 09 PHP
php MsSql server时遇到的中文编码问题
Jun 11 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
php加密解密实用类分享
Jan 07 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
PH P5.2至5.5、5.6的新增功能详解
Jul 14 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
PHP重定向与伪静态区别
Feb 19 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
PHP sdk实现在线打包代码示例
Dec 09 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
jQuery常见开发技巧详细整理
2013/01/02 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
python 实现插入排序算法
2012/06/05 Python
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python获取本地计算机名字的方法
2015/04/29 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
PyQt5 多窗口连接实例
2019/06/19 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
python的链表基础知识点
2020/09/13 Python
python批量修改交换机密码的示例
2020/09/22 Python
python如何调用百度识图api
2020/09/29 Python
Django model class Meta原理解析
2020/11/14 Python
智能室内花园:Click & Grow
2021/01/29 全球购物
优秀研究生自我鉴定
2013/12/04 职场文书
2014年统计工作总结
2014/11/21 职场文书
升学宴家长致辞
2015/07/27 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android