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 水平的题目
May 30 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
php发送与接收流文件的方法
Feb 11 PHP
PHP符合PSR编程规范的实例分享
Dec 21 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 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
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
python如何快速拼接字符串
2020/10/28 Python
Python descriptor(描述符)的实现
2020/11/15 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
幼儿教师自我鉴定
2013/11/02 职场文书
艺术设计专业个人求职信范文
2013/12/11 职场文书
节电标语大全
2014/06/23 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
匿名检举信范文
2015/03/02 职场文书
活动新闻稿范文
2015/07/17 职场文书
志愿服务心得体会
2016/01/15 职场文书
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫
MySQL 数据 data 基本操作
2022/05/04 MySQL