用处

就是对于rules()的加强版本

举个简单的例子,现在在 post表里面有 title image content 三个的字段,当我创建一个 post 的时候,我
想三个字段全部是必填项,但是你修改的时候,title content 两个字段是必填的, iamge 可以不填写。正常
的情况下, [['title', 'content', 'image'], 'required',], 但是我们更改的时候 只需要 [['title',
'content'], 'required'], 就可以了,但是少了 image 字段 我们的表单就无法提交,这种问题怎么办啊??
场景可以帮你解决这种问题,下面是一个简单的场景实例。

例子

1.首先我们在 model 里面定义一下场景 类名必须是 scenarios()


public function scenarios()
{return ['create' => ['title', 'image', 'content'],'update' => ['title', 'content'],];
}

2.场景的基本设置完成一部分了,下面我们设置 rules() ,调用场景我们用 on 关键字

[['title', 'content'], 'required', 'on' => ['create', 'update']],
[['image'], 'required', 'on' => 'create'],
[['image'], 'image', 'enableClientValidation' => true,   'maxSize' => 1024, 'message' => '您上传的文件过
大', 'on' => ['create']],

3.model 里面我们就设置完毕了 现在开始调用吧, Controller 里面

$model = $this->findModel($id);
$model->setScenario('update'); or $model->scenario = 'update';

Yii的scenarios相关推荐

  1. php yii model,Yii模型

    属性 属性代表业务数据.它们可以像数组元素或对象的属性那样来访问.一个模型的每个属性都是公开访问的属性.要指定模型拥有什么属性,应该重写yii\base\Model::attributes() 方法. ...

  2. yii验证系统学习记录,基于yiicms(一)写的太长了,再写一篇(二)

    项目地址:https://gitee.com/templi/yiicms 感谢七觞酒大神的付出,和免费分享.当然也感谢yii2的开发团队们. 项目已经安全完毕,不知道后台密码,这种背景下,后台无法进去 ...

  3. 活动记录(AcitveReocrd)-Yii与数据库-(5.3)深入理解YII2.0

    AcitveReocrd事件和关联操作 ActiveRecord预定义的事件,都在 yiidbBaseActiveRecord 中进行了明确: abstract class BaseActiveRec ...

  4. php yii orm,Yii中的sql查询的位置(或任何支持ORM的框架)?

    对于使用MVC体系结构的项目,这是更多的编码风格问题. 我正在使用Yii框架开展一个项目. 每个数据库表都有它自己的模型类,可以让我充分利用Yii的活动记录. 凉. 但是现在我需要用一个复杂的逻辑和大 ...

  5. PHP开发框架之YII框架学习——碾压ThinkPHP不是梦

      前  言 JRedu 程序猿是一种慵懒的生物!能少敲一行代码,绝对不会多敲一个字符!所以,越来越多的开发框架应运而生,在帮助我们完成功能的同时,极大程度上也帮我们节省了人力物力,而且也提高了系统的 ...

  6. php in yii framework

    为什么80%的码农都做不了架构师?>>>    command line php yiic defined('STDIN') or define('STDIN', fopen('ph ...

  7. Yii在window下的安装方法

    首先,在http://www.yiichina.com/上下载yii 然后,配置系统环境变量,在win8下,按win+x,找到系统->高级系统设置->环境变量->path 把php的 ...

  8. 通过yiic来创建yii应用

    一.通过yiic来创建yii应用(*yiic命令在yii下载包的framework目录下)1.把你自已的php环境添加到系统环境变量中. 2.在命令行下输入: yiic webapp 位置\名称 yi ...

  9. Yii学习笔记【2】

    视图渲染流程: render($view, $data, $return)| beforeRender()| 渲染View文件,调用renderPartial(),要求处理输出结果||----> ...

最新文章

  1. 2048游戏的python实现
  2. 如何在单个API中支持Java 6、8、9
  3. 免费zblog mip主题aymFreeTwo
  4. java计算机毕业设计中美医院病历管理系统源代码+系统+数据库+lw文档
  5. 115网盘如何打开php文件格式,opensuse安装115网盘客户端
  6. 混沌工程(Chaos Engineering) 到底是什么?
  7. yarn : 无法加载文件 C:\Users\mosho\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。
  8. 发现尖叫--生物电体感
  9. 喜报!芝诺大数据教学科研平台入选重庆市重点软件公共服务平台
  10. 投影仪的对比度多少合适,当贝X3高亮对比度和电视基本一样
  11. ES6 对象的解构赋值
  12. 猫眼CEO郑志昊:为什么说产品思维已“死”?
  13. win10 无法修改时间,自动设置时间灰色
  14. python 脚本下载bilibili右上角表情包
  15. 【保密知识】排查失泄密隐患 防控保密风险点
  16. 华为在深度学习平台上的优化实践
  17. STL容器基础 - 0
  18. VS2010出现“为帮助内容存储区指定的位置无效或者您无权访问该位置”的解决办法
  19. Linux比windows更适合工作和娱乐
  20. 整顿一年再次增资近50%,为什么蚂蚁集团要重启IPO?

热门文章

  1. Hive常用运算(关系运算)、逻辑运算与数学运算、数值运算、日期函数、条件函数、字符串函数
  2. 通过移位的方式实现相加算法
  3. 窗口分析函数_2_生成同值重复排名序号
  4. jfinal mysql date,jfinal与mysql数据类型拾掇大全
  5. oracle中的open,Oracle 深入分析Open过程
  6. 利用Pytorch的C++前端(libtorch)读取预训练权重并进行预测
  7. 基于深度学习的图像语义分割技术概述之背景与深度网络架构
  8. 理解 React Hooks
  9. 四十年前的 6502 CPU 指令翻译成 JS 代码会是怎样
  10. phpcms如何给已有的模块添加新功能?