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 相关文章推荐
Discuz 5.0 中读取纯真IP数据库函数分析
Mar 16 PHP
php Smarty 字符比较代码
Feb 27 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
php实现的CSS更新类实例
Sep 22 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
YII框架批量插入数据的方法
Mar 18 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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
PHPUnit安装及使用示例
2014/10/29 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
python如何查看系统网络流量的信息
2016/09/12 Python
win与linux系统中python requests 安装
2016/12/04 Python
python生成随机图形验证码详解
2017/11/08 Python
python内置数据类型之列表操作
2018/11/12 Python
python使用PyQt5的简单方法
2019/02/27 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
Java提供了哪些企业应用编程接口
2015/02/13 面试题
前台接待员岗位职责
2014/01/02 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
网络编辑岗位职责
2014/03/18 职场文书
教师个人自我评价
2015/03/04 职场文书
监护人证明
2015/06/19 职场文书
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS