zoukankan      html  css  js  c++  java
  • Yii2学习笔记之场景

    场景

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

      模型使用 yiiaseModel::scenario 属性保持使用场景的跟踪, 默认情况下,模型支持一个名为 default 的场景, 两种设置场景的方法:

    //场景作为属性来设置
    
    $model = new User;
    $model -> scenario = 'login';
    
    
    //场景通过构造初始化配置来设置
    
    $model = new User(['scenario' => 'login']);

      默认情况下,模型支持的场景由模型中申明的验证规则来决定,为此你可以指定规则的 on 属性,如下所示:

    public function rules()
    {
        return [
            // 在"register" 场景下 username, email 和 password 必须有值
            [['username', 'email', 'password'], 'required', 'on' => 'register'],
    
            // 在 "login" 场景下 username 和 password 必须有值
            [['username', 'password'], 'required', 'on' => 'login'],
        ];
    }

       但你可以通过 yiiaseModel::scenarios() 方法来自定义行为, 如下所示:

    namespace appmodels;
    
    use yiidbActiveRecord;
    
    class User extends ActiveRecord
    {
        const SCENARIO_LOGIN = 'login';
        const SCENARIO_REGISTER = 'register';
    
        public function scenarios()
        {
            return [
                self::SCENARIO_LOGIN => ['username', 'password'],
                self::SCENARIO_REGISTER => ['username', 'email', 'password'],
            ];
        }
    }
  • 相关阅读:
    Java集合
    插入排序
    修改button的可点击区域
    这就是工作
    Cocos2dx使用TextField实现输入框
    SVN解决本地版本控制与服务器版本冲突问题
    ParallaxNode视差节点实现远景近景的不同层次移动
    人生最重要的三个领域——健康、财富和爱
    什么是开发框架-- (转载)
    C++函数模版的简单使用
  • 原文地址:https://www.cnblogs.com/xiaopiyuanzi/p/5946140.html
Copyright © 2011-2022 走看看