yii rule】的更多相关文章

https://blog.csdn.net/ljfrocky/article/details/46373691 http://www.yiichina.com/tutorial/997 http://www.yiichina.com/tutorial/723?sort=desc…
在使用Yii时遇到这样的需求:在一个注册的页面输入两次密码,并验证两次输入是否一致.可是password的repeat的字段在数据库 并不存在.问题来了,如何创建一个password_repeat的属性,进行密码验证.最偷懒的方法就是利用yii自带的验证器.在这里记录下实现的方 法. 假设项目结构如下 protected/models/User.php proteced/controllers/SiteController.php protected/views/site/forgot.php…
作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 在我们之前yii2搭建后台以及rbac详细教程中,不知道你曾经疑惑过没有一个问题,rule表是做什么的,为什么在整个过程中我们都没有涉及到这张表? 相信我不说,部分人也都会去尝试,或百度或google,到头来也会竹篮打水,这部分讲解的内容少之又少啊! 对于一般的权限系统而言,我…
Yii框架中集成分层的 RBAC,代码位于vendor\yiisoft\yii2\rbac中,rbac工作原理分为两部分,建立授权数据和进行权限检查. 如上,一个角色拥有某个权限,如果希望用户拥有这个权限,那么就将拥有该权限的角色赋予给用户,特别是当系统中用户数量非常大的时候,如果需要修改权限只需要修改角色就可以了. 角色和权限都可以按层次组织.特定情况下,一个角色可能由其他角色或权限构成, 而权限又由其他的权限构成. 一个角色可以包含一个权限,反之则不行. 特定的权限,可以用一个规则 rule…
前面已经看完了启动一个yii程序所要经过的流程,以及渲染一个页面是怎么完成的.今天要分析的是yii是如何处理用户请求的.也就是控制和动作部分. 还是以helloworld为例演示这一过程.我们在地址栏输入http://localhost/study/yii/demos/helloworld/index.php,页面就显示了hello world. 前面的分析都是用的默认值,但是如果url有参数的时候,yii又是怎么处理的呢?带着这个问题,我们具体来分析一下. 在CWebApplication中有…
classes.php在yii运行的时候将被自动加载,位于yii2文件夹底下. <?php /** * Yii core class map. * * This file is automatically generated by the "build classmap" command under the "build" folder. * Do not modify it directly. * * @link http://www.yiiframewor…
YII 伪静态 IIS7 方法 web.config <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Main Rule" stopProcessing="true"> <match url=…
访问控制过滤器(Access Control Filter)访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式. 这种授权模式基于用户名,客户IP地址和访问类型. 访问控制过滤器,适用于简单的验证. 需要复杂的访问控制,需要使用将要讲解到的基于角色访问控制(role-based access (RBAC)). 在控制器(controller)里重载CController::filters方法,设置访问过滤器来控制访问动作(看 Filter 了解更多过滤器…
在我们之前yii2搭建后台以及rbac详细教程中,不知道你曾经疑惑过没有一个问题,rule表是做什么的,为什么在整个过程中我们都没有涉及到这张表? 相信我不说,部分人也都会去尝试,或百度或google,到头来也会竹篮打水,这部分讲解的内容少之又少啊! 对于一般的权限系统而言,我们之前做的rbac一般情况下是足够的,即时没有rule,相信你也能实现我们用rule实现的功能. 我们就以官网的例子给出一个具体的操作教程,看看这个神秘的rule到底是做什么的! 看需求: 我们有管理员和普通用户,对于文章…
动态模型DynamicModel类,用于实现模型内数据验证: namespace yii\base; use yii\validators\Validator; /** * DynamicModel is a model class primarily used to support ad hoc data validation. * DynamicModel是一种主要用于支持ad hoc数据验证模型类 * * The typical usage of DynamicModel is as fo…
这里有几个概念很重要,我简单用大白话说一下; 权限:就是指用户是否可以执行哪些操作. 如:小张可以发帖.回帖.浏览,小红只能回帖.浏览 角色:就是上面说的一组操作的集合. 如:高级会员有发帖.回帖.删贴.浏览的权限,普通会员只有回帖.浏览的权限.比如小张是高级会员,那么他就可以执行发帖.回帖.删贴.浏览.而小红是普通会员,所以它就只能回帖.浏览. 另外角色还可以继承,中级会员除了普通会员的回帖.浏览功能外,还可以发帖.也就是说在普通会员的基础上又增加了一个发帖的权限. 在Yii2.0中 yii\…
yii的官方文档对此的解释如下: urlSuffix  此规则使用的url后缀,默认使用CurlManger::urlSuffix,值为null.例如可以将此设置为.html,让url看起来“像”是一个静态页面. caseSensitive  是否大小写敏感,默认使用CUrlManager::caseSensitive,值为null. defaultParams  该规则使用的默认get参数.当使用该规则来解析一个请求时,这个参数的值会被注入到$_GET参数中. matchValue  当创建一…
Model类,集中整个应用的数据和业务逻辑—— /** * Generates a user friendly attribute label based on the give attribute name. * 生成一个对用户友好的属性标签,将属性名中的下划线.破折号.点替换为空格,并且每个单词的首字母大写 * This is done by replacing underscores, dashes and dots with blanks and * changing the first…
Model类,集中整个应用的数据和业务逻辑——验证 /** * Returns the attribute labels. * 返回属性的标签 * * Attribute labels are mainly used for display purpose. For example, given an attribute * `firstName`, we can declare a label `First Name` which is more user-friendly and can *…
Model类,集中整个应用的数据和业务逻辑: namespace yii\base; use Yii; use ArrayAccess; use ArrayObject; use ArrayIterator; use ReflectionClass; use IteratorAggregate; use yii\helpers\Inflector; use yii\validators\RequiredValidator; use yii\validators\Validator; /** *…
验证和授权(Authentication and Authorization) 定义身份类 (Defining Identity Class) 登录和注销(Login and Logout) 访问控制过滤器(Access Control Filter) 基于角色的访问控制(Role-Based Access Control) 配置授权管理器(Authorization Manager) 定义授权等级体系 使用业务规则 对于需要限制某些用户访问的网页,我们需要使用验证(Authentication…
加入 关联表 相关字段的搜索: 先说一句,我们在这里仅仅谈 "一对多" 的关联搜索,首先,不要忘了我们的数据库,忘记的同学请戳这里:这里.能够看到在 tbl_post 中是有一个外键关联到 tbl_user 表的,用以查找作者的相关信息.建了数据库之后,看看我们生成的 Yii 代码的 POST 的 Model. 里面的 realtion 例如以下(忽略 comment 的): /** * @return array relational rules. */ public functio…
官方文档:http://www.yiichina.com/guide/form.model 类参考手册:http://www.yiichina.com/api/CValidatorhttp://www.php100.com/manual/yii/index.html Yii CModel.rules() 方法 .validate预定义完整列表.以及说说验证public array rules () { .......} array 要调用 validate() 时应用的有效性规则.返回属性的有效…
1. 定义身份类 (Defining Identity Class)  为了验证一个用户,我们定义一个有验证逻辑的身份类.这个身份类实现[IUserIdentity] 接口.不同的类可能实现不同的验证方式(例如:OpenID,LDAP).最好是继承 CUserIdentity,此类是居于用户名和密码的验证方式.定义身份类的主要工作是实现[IUserIdentity::authenticate]方法.在用户会话中根据需要,身份类可能需要定义别的身份信息. 应用实例 下面的例子,我们使用Active…
模型是 CModel 或其子类的实例.模型用于保持数据以及与其相关的业务逻辑. 模型是单独的数据对象.它可以是数据表中的一行,或者一个用户输入的表单. 数据对象的每个字段对应模型中的一个属性.每个属性有一个标签(label), 并且可以通过一系列规则进行验证. Yii 实现了两种类型的模型:表单模型和 Active Record.二者均继承于相同的基类 CModel. 表单模型是 CFormModel 的实例.表单模型用于保持从用户的输入获取的数据. 这些数据经常被获取,使用,然后丢弃.例如,在…
我曾经针对yii制作了 个nginx配置,其中包括了以下几项内容: rewrite规则(try_file),需要nginx0.8.6版本以上支持. 针对于icon, robots.txt文件的日志优化 .svn, .git,等版本控制文件的忽略,以及Mac本身索引文件目录 Yii框架本身应该禁止web访问的目录. 图片等静态文件缓存优化 在这里分享一下demo server { listen 80; server_name youdomain.com; index index.html inde…
需要查询某时间段的记录,但是数据库里只有一个时间记录,如果写sql的话,很快的,放到yii里一时竟然没办法... 不过,最后还是解决了,使用了一个第三方的插件 参考http://www.yiiframework.com/wiki/461/adding-a-date-range-search-for-cgridview-the-easy-way/ 按照说明写就可以的,只是有一点,分页的时候,会出错,目前还不知道是哪里造成的,不过不影响大局,先给他列几百条记录出来 先看一个图吧,如果是需要的,往下看…
访问控制过滤器(Access Control Filter)访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式. 这种授权模式基于用户名,客户IP地址和访问类型. 访问控制过滤器,适用于简单的验证. 需要复杂的访问控制,需要使用将要讲解到的基于角色访问控制(role-based access (RBAC)). 在控制器(controller)里重载CController::filters方法,设置访问过滤器来控制访问动作(看 Filter 了解更多过滤器…
问题:NO 'Access-Control_Allow-Origin' header is present on the requested resource. 解决方案 <?php namespace app\modules\v1\controllers; use Yii; use yii\web\Response; class BaseAPIController extends \yii\rest\Controller { public $serializer = [ 'class' =>…
转载自 xmlife 的博客 : http://blog.csdn.net/xmlife/article/details/50733451 1.首先我们要在配置文件的组件(component)里面配置一下 Rbac ‘authManager’ => [ ‘class’ => ‘yii\rbac\DbManager’, ‘itemTable’ => ‘auth_item’, ‘assignmentTable’ => ‘auth_assignment’, ‘itemChildTable…
项目地址:https://gitee.com/templi/yiicms 感谢七觞酒大神的付出,和免费分享.当然也感谢yii2的开发团队们. 项目已经安全完毕,不知道后台密码,这种背景下,后台无法进去.绕不开的话题就是: 1.后台密码账号如何产生.类似下图: 加密过的字符串自然不能用于登陆. 我尝试通过前台注册一个账户,然后登陆,因为权限不够,尽管等登陆到后台首页,同样无权访问其他任何页面.配置了下modules, 意图通过给予权限系统权限,然后更改刚加入的用户“zhuangli”以管理员角色以…
简单的方法:在 model 内部定义规则 最简单的定义验证规则的方法是在使用它的模型(model)内部定义. 比方说,你要检查用户的密码是否足够安全. 通常情况下你会使用 CRegularExpression 方法验证,但为了本指南,我们假设不存在此验证方法. 首先在模型(model)中添加两个常量 const WEAK = 0; const STRONG = 1; 然后在模型(model)的 rules 方法中设置: /** * @return array validation rules f…
setFlash(), getFlash()可以完成验证成功后提示 <?php # 成功信息提示 Yii::app()->user->setFlash('success', "Thinks saved success!"); # 错误信息提示 Yii::app()->user->setFlash('error', "here has an Error, Please check that!"); # 一般消息信息提示 Yii::app(…
common:中加 'authManager' => [ 'class' => 'yii\rbac\DbManager', 'itemTable' => 'auth_item', 'assignmentTable' => 'auth_assignment', 'itemChildTable' => 'auth_item_child', ], yii中自带的四张表: vendor/yiisoft/yii2/rbac/migrations/schma-mysql.sql 还加一个…
defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/../vendor/autoload.php'); // 注册 Composer 加载器 Yii::setAlias('@common', dirname(__DIR__)); // 注册别名 { \yii\BaseYii::setAlias($alias, $…