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使之能同时支持GIF和JPEG
Oct 09 PHP
PHP教程 预定义变量
Oct 23 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
php图像处理类实例
Jul 28 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
详解laravel安装使用Passport(Api认证)
Jul 27 PHP
PHP _construct()函数讲解
Feb 03 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 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
DOMXML函数笔记
2006/10/09 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
document.documentElement的一些使用技巧
2013/04/18 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
用python解压分析jar包实例
2020/01/16 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
python super()函数的基本使用
2020/09/10 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
HTML5 新事件 小结
2009/07/16 HTML / CSS
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
挂科检讨书范文
2014/02/20 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
售房协议书
2014/08/19 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
田径运动会广播稿
2015/08/19 职场文书