下面给大家介绍一下 yii2.0 场景的使用。 现在在 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']],

on 指定的就是场景,一个场景用字符串,多个场景用数组

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

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

上面的意思就是 调用 update 场景。一切就是这么简单,

Yii2 场景的更多相关文章

  1. [moka同学笔记]yii2场景的使用(摘录)

    前半部分为自己使用的过程,下边为转载的,具体地址见:http://blog.sina.com.cn/s/blog_88a65c1b0101j717.html 1.在model中 public func ...

  2. yii2场景

    遇到的问题 起作用了但是使用create的时候,保存却出了问题,提示unknown scenarios:default 解决方法 后来找文章,是因为设置场景的时候,直接把父类的场景覆盖了.所以应该这样 ...

  3. yii2场景的应用(scenarios)

    例如: 现在在 post表里面有 title image content 三个的字段,当我创建一个 post 的时候,我想三个字段全部是必填项,但是你修改的时候,title content 两个字段是 ...

  4. yii2 场景使用

    场景定义 //场景 const SCENARIO_USER_CREATE='0';//前台用户新增 const SCENARIO_USER_UPDATE='1';//前台用户更新 场景配置 publi ...

  5. Yii2 场景scenario的应用

    首先,我们在使用模型类中的验证,rules的时候,会出现以下情况: 假设有一个字段type, 当type

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

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

  7. Yii2.0中场景的使用小记

    熟悉Yii框架的人都知道,灵活的使用场景可以达到事半功倍的效果! 比如普通的数据的新增.修改,新增需要验证其中两个字段,而修改只需要验证其中一个字段:还有种情况,也是我们现在用到的,同一张表(同一个m ...

  8. yii2中的场景使用

    下面给大家介绍一下 yii2.0 场景的使用.小伙多唠叨一下了,就是担心有的人还不知道,举个简单的例子,现在在 post表里面有 title image content 三个的字段,当我创建一个 po ...

  9. Yii2学习笔记之场景

    场景 一个模型可能在多个场景中使用,在不同的场景中,模型可能使用不同的业务逻辑和规则.例如, User 模型可能在用户登录时使用,也可能在用户注册时使用,某些属性可能在用户注册时强制要求有,在用户登录 ...

随机推荐

  1. 2017-07-06(grep man apropos )

    grep 格式 grep [选项]  字符串  文件名 选项 -i 忽略大小写 -v 排除指定字符串 作用 在文件中查找字符串 例子 grep  "size"  anaconda- ...

  2. javascript之this

    全局作用域的this this == window //true this.a = 8 window.a 一般函数的this function thisTest(){ return this; } t ...

  3. (2-1)SpringCloue-Eureka实现高可用注册中心

    高可用注册中心 在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署.在eureka-server中的application.yml中我们还记得 ...

  4. linux_nginx环境配置

    rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm # 安装阿里的epel源 国内使用web站点最多的w ...

  5. Servlet--ServletRequest接口,ServletResponse接口

    ServletRequest接口 定义 public interface ServletRequest 定义一个 Servlet 引擎产生的对象,通过这个对象, Servlet 可以获得客户端请求的数 ...

  6. 前端工程构建工具FIS3

    FIS3 是面向前端的工程构建工具.解决前端工程中性能优化.资源加载(异步.同步.按需.预加载.依赖管理.合并.内嵌).模块化开发.自动化工具.开发规范.代码部署等问题. 一.安装 全局安装fis3 ...

  7. SQL Server ——动态SQL

    EXECUTE 执行 Transact-SQL 批中的命令字符串.字符串或执行下列模块之一:系统存储过程.用户定义存储过程.标量值用户定义函数或扩展存储过程.SQL Server 2005 扩展了 E ...

  8. python-networkx学习(1)

    介绍: networkx是python的一个库,它为图的数据结构提供算法.生成器以及画图工具.近日在使用ryu进行最短路径获取,可以通过该库来简化工作量.该库采用函数方式进行调用相应的api,其参数类 ...

  9. $.ajax()实现简单计算器

    1.html页面  a.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  10. 【转】<string> <string.h> <cstring>的区别

    #include < string.h > void main() { string aaa = " abcsd d " ; printf( " lookin ...