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 相关文章推荐
也谈截取首页新闻 - 范例
Oct 09 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
关于zend studio 出现乱码问题的总结
Jun 23 PHP
深入解析php中的foreach问题
Jun 30 PHP
php配合jquery实现增删操作具体实例
Dec 12 PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 PHP
php模拟服务器实现autoindex效果的方法
Mar 10 PHP
PHP加密解密函数详解
Oct 28 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
基于php伪静态的实现方法解析
Jul 31 PHP
PHP isset()及empty()用法区别详解
Aug 29 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
当海贼王变成JOJO风
2020/03/02 日漫
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
PHP中的类型约束介绍
2015/05/11 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
检讨书范文500字
2015/01/28 职场文书
社区植树节活动总结
2015/02/06 职场文书
电影复兴之路观后感
2015/06/02 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
python之django路由和视图案例教程
2021/07/26 Python
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle