使用方法

// 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. 拷贝excel里的内容转为JSON的js代码

    <!DOCTYPE html> <html lang="en"> <head> <title>excel转json</titl ...

  2. iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView

    iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView 时间:2016-01-19 19:13:43      阅读:630      评论:0      收藏:0   ...

  3. SQL基础语法(四)

    SQL ORDER BY 子句   ORDER BY 语句用于对结果集进行排序. ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对 ...

  4. [基础] Array.prototype.indexOf()查询方式

    背景 最近在看Redux源码,createStore用于注册一个全局store,其内部维护一个Listeren数组,存放state变化时所有的响应函数. 其中store.subscribe(liste ...

  5. ThinkPHP 多语言

    1.注意区分项目语言包和系统语言包 2.实现语言包和数据库语言同步切换 实用链接: ThinkPHP完全开发手册3.1 多语言 thinkphp3.1 多语言简单demo 总结ThinkPHP使用技巧 ...

  6. AutoMapper简单用法

    首先在NuGet添加AutoMapper /// <summary> /// AutoMapper帮助类 /// </summary> public static class ...

  7. javascrip for 循环数组事件绑定

    //radio选择填充,字段 var radioArray = ["F_RegisterCode", "F_Subjection", "F_Mecha ...

  8. Scrum Meeting

    本周Sprint Master 侯宇泰 一. 工作完成内容记录 & 明日计划 · 陈双: 完成内容: 1. 做了一个英语趣配音的用户评价调研 2. 上传了一个新视频 明日计划: 1. 与前端录 ...

  9. zlib-1.2.7/libpng-1.5.9 instead of zlib-1.2.8/libpng-1.6.6

    The reason for the failure apparently appears to be version incompatibility, partly may be due to li ...

  10. supervisor监管进程max file descriptor配置不生效的问题

    配置了 sudo vim /etc/security/limits.conf * soft nofile * hard nofile   单独起进程没问题, 放到supervisor下监管启动,则报错 ...