关于Yii中模型场景的一些简单介绍
发布:smiling 来源: PHP粉丝网 添加日期:2021-12-20 10:50:13 浏览: 评论:0
这篇文章主要给大家介绍了关于Yii中模型场景的一些简单介绍,文中通过示例代码介绍的非常详细,对大家学习或者使用Yii具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
前言
在Yii中模型字段验证有一个场景的概念,可以在不同的场景下设置不同的验证规则,在Yii中的场景默认为default,简单实现如下
下面我以用户表,表中字段为user_name,password
简单规则如下
- public function rules() {
- return [
- [['user_name', 'password'], 'required'],
- [['user_name', 'password'], 'string', 'max' => 255],
- ];
- }
一:如果我们需要在新增时验证user_name和password两个字段,在更新时只验证user_name字段
这时候我们可以在模型中覆盖yiibaseModel::scenarios()方法来自定义行为
- public function scenarios()
- {
- return [
- 'create' => ['user_name', 'password'],//create表示新增场景
- 'update' => ['user_name'],//update表示更新场景
- ];
- }
根据上面设置的场景规则,我们只需要在我们新增和更新时设置为指定的场景即可
- // 场景作为属性来设置
- $model = new User;
- $model->scenario = 'create';
- // 场景通过构造初始化配置来设置
- $model = new User(['scenario' => 'create']);
根据如上就可以实现在不同的场景下验证指定的字段
二:我们可以在规则rule中使用on属性来设置不同的场景
- public function rules()
- {
- return [
- [['id'], 'integer'],
- [['user_name'], 'required'],
- [['password'], 'required', 'on' => 'create']
- [['user_name', 'password'], 'string', 'max' => 255],
- ];
- }
根据如上在create场景下password字段必填
三:使用yiibaseModel::validate() 来验证接收到的数据
$model = new User();
$model->validate(['user_name'])
使用validate方法验证user_name,验证通过返回true,否则返回false
Tags: Yii模型场景
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)