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中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
php 表单验证实现代码
Mar 10 PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
10个值得深思的PHP面试题
Nov 14 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
php框架CodeIgniter主从数据库配置方法分析
May 25 PHP
php tpl模板引擎定义与使用示例
Aug 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
php循环table实现一行两列显示的方法
2015/06/04 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python中List.count()方法的使用教程
2015/05/20 Python
python创建临时文件夹的方法
2015/07/06 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python 实现按对象传值
2019/12/26 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
大学生村官工作感言
2014/01/10 职场文书
大学校庆邀请函
2014/01/11 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
团代会主持词
2014/04/02 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
财务工作检讨书
2014/10/29 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
公司借款担保书
2015/09/22 职场文书
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python