使用方法

// scenario is set as a property
$model = new User;
$model->scenario = User::SCENARIO_SHOW; // scenario is set through configuration
$model = new User(['scenario' => User::SCENARIO_SUBMIT]);

举例说明

<?php

namespace app\models;

use yii\base\Model;

class ContactForm extends Model
{
public $username;
public $password;
public $email; const SCENARIO_SHOW = 'show';
const SCENARIO_SUBMIT = 'submit'; public function scenarios()
{
return [
self::SCENARIO_SHOW => ['username', 'password'],
self::SCENARIO_SUBMIT => ['username', 'email', 'password'],
];
} public function rules()
{
return [
// username, email and password are all required in "submit" scenario
[['username', 'email', 'password'], 'required', 'on' => self::SCENARIO_SUBMIT], // username and password are required in "show" scenario
[['username', 'password'], 'required', 'on' => self::SCENARIO_SHOW],
];
} public function attributeLabels()
{ switch($this->scenario)
{
case self::SCENARIO_SHOW:
$labels = [
'username' => 'User Name',
'password' => 'Password',
];
break; case self::SCENARIO_SUBMIT:
$labels = [
'username' => 'User Name',
'password' => 'Password',
'email' => 'Your email address',
];
break;
}
return $labels;
}
}

YII2之 Scenario的更多相关文章

  1. Yii2 场景scenario的应用

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

  2. YII2 model 字段验证提示 Unknown scenario: update

    意思是 update 场景不存在,也就是 定义的 rules 中没有该规则: /** * @inheritdoc * 验证规则 */ public function rules() { return ...

  3. Yii2 认证实现原理和示例

    Yii的用户认证分为两个部分,一个是User组件,负责管理用户认证状态的,包括登录,登出,检测当前登录状态等,源文件位于vender/yiisoft/yii2/web/User.php.另一个是实现接 ...

  4. Yii2 事务操作

    官网关于Yii2 事务的说明文档 http://www.yiiframework.com/doc-2.0/guide-db-active-record.html Working with Transa ...

  5. Yii2 用户登录

    在Yii2的basic版本中默认是从一个数组验证用户名和密码,如何改为从数据表中查询验证呢?且数据库的密码要为哈希加密密码验证? 下面我们就一步一步解析Yii2的登录过程. 一. 创建user表模型 ...

  6. yii2开发后记

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

  7. [moka同学摘录]Yii2.0开发初学者必看

    想要了解更多YII,PHP方面内容,请关注本博客. 基础总结 1.修改默认控制器/方法 yii默认是site控制器,可以在web.php中设置$config中的'defaultRoute'='xxxx ...

  8. yii2源码学习笔记(六)

    Behvaior类,Behavior类是所有事件类的基类: 目录yii2\base\Behavior.php <?php /** * @link http://www.yiiframework. ...

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

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

随机推荐

  1. [LeetCode] Lowest Common Ancestor of a Binary Tree 二叉树的最小共同父节点

    Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...

  2. [EF2]Sneak Preview: Persistence Ignorance and POCO in Entity Framework 4.0

    http://blogs.msdn.com/b/adonet/archive/2009/05/11/sneak-preview-persistence-ignorance-and-poco-in-en ...

  3. BootStrap学习笔记,优缺点总结

    本篇约定Bootstrap简写为BT   BT的受欢迎程度是大家有目共睹的,用它可以快速的搭建出网站.很早就接触过这个框架,其中的栅格系统,css模块化以及js插件做的相当不错,由于工作中较少使用也一 ...

  4. GreenDao的使用

    1.生成代码文件

  5. mybatis返回数据类型为map,值为null的key没返回

    创建mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  6. js浮点乘除法运算不精确bug

    //除法函数,用来得到精确的除法结果 //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显.这个函数返回较为 精确的除法结果. //调用:accDiv(arg1,arg2 ...

  7. the user operation is waiting

    eclipse在编辑完代码保存的时候,弹出一个进度框,等N长时间,标题是"user operation is waiting",里面显示的是building workspace的进 ...

  8. BZOJ 4390: [Usaco2015 dec]Max Flow

    4390: [Usaco2015 dec]Max Flow Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 177  Solved: 113[Submi ...

  9. CentOS7清理yum缓存和释放内存方法

    清理yum缓存 清理yum缓存使用yum clean 命令,yum clean 的参数有headers, packages, metadata, dbcache, plugins, expire-ca ...

  10. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...