Yii2中简单的场景使用介绍


Posted in PHP onJune 02, 2017

本文主要介绍的是关于Yii2简单场景使用的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

直接上代码(主要部分):

模型层:

public function rules()
{
 return [
  [['name', 'account', 'pwd'], 'string', 'max' => 11],
  ['account','required','message'=>'用户名不能为空'],
  ['pwd','required','message'=>'密码不能为空','on'=>'update']
 ];
}

控制器:

$model = new User();
if(isset($_POST['User'])){
 $model -> attributes = Yii::$app->request->post('User');
 $model -> save();
}

这个时候在控制器没有调用任何场景。他的结果是:用户名验证,密码不验证

如果在控制器加上一句$model->scenario='update';其结果是:用户名,密码都验证了

如果这个时候再在模型加上几句代码:

public function scenarios()
{
 return [
  'update'=>['pwd'],//在该场景下的属性进行验证,其他场景和没有on的都不会验证
 ];
}

其结果是:用户名没有验证,密码验证了

还有要注意如果你在模型里重写了scenarios()方法,在控制器调用了场景,那调用的场景名称必须在scenarios()方法里有,否则出错!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php截取utf-8中文字符串乱码的解决方法
Mar 29 PHP
PHP如何抛出异常处理错误
Mar 02 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
Yii 2.0中场景的使用教程
Jun 02 #PHP
详解PHP5.6.30与Apache2.4.x配置
Jun 02 #PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 #PHP
php从数据库中读取特定的行(实例)
Jun 02 #PHP
php获取数据库结果集方法(推荐)
Jun 01 #PHP
php获取数据库中数据的实现方法
Jun 01 #PHP
PHP用户注册邮件激活账户的实现代码
May 31 #PHP
You might like
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
javascript 事件处理程序介绍
2012/06/27 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
js 调用百度分享功能
2017/02/27 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
python实现端口转发器的方法
2015/03/13 Python
Python实现简单字典树的方法
2016/04/29 Python
python类中super()和__init__()的区别
2016/10/18 Python
python 生成器协程运算实例
2017/09/04 Python
python自动裁剪图像代码分享
2017/11/25 Python
python测试mysql写入性能完整实例
2018/01/18 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
Python检测数据类型的方法总结
2019/05/20 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
初中校园广播稿
2014/02/02 职场文书
小组合作学习反思
2014/02/18 职场文书
关于运动会的口号
2014/06/07 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
生产车间管理制度
2015/08/04 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL