![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Yii2
文章平均质量分 70
wjtlht928
这个作者很懒,什么都没留下…
展开
-
yii2 RBAC使用DbManager来实现后台的权限判断
首先根据文档生成yii2 框架中的表yii migrate --migrationPath=@yii/rbac/migrations/生成如下4表:auth_assignmentauth_item_childauth_itemauth_rule使用yii的gii快速生成对应的model,但是由于auth_item表同时存储角色跟权限,由于后面我们要分角色跟权原创 2015-06-09 23:58:07 · 1288 阅读 · 0 评论 -
Yii2—视图(View)
视图(View) 基本定义 部件(Widget) 安全 模板引擎 在模板中使用视图对象 设置页面标题 添加meta标签 注册连接标签 注册CSS 注册脚本 注册asset bundles 布局(Layout) 局部(Partial) 访问上下文 静态页面 缓存区块 自定义视图组件原创 2015-06-09 08:30:37 · 9198 阅读 · 0 评论 -
Yii2基类控制器文件分析(yii\base\Controller.php)创建动作执行动作
Yii2基类控制器文件分析(yii\base\Controller.php)创建动作执行动作原创 2015-06-08 22:56:45 · 2572 阅读 · 0 评论 -
Yii2的Web控制器文件分析(yii\web\Controller.php)
这个控制器大体也分三部分action相关功能render相关功能常用response简写1、action相关功能action中绑定参数功能:public function bindActionParams($action, $params)/** 这个是基类的 action中绑定参数功能的实现* * 根据action中定义的参数,从$_GET中取原创 2015-06-08 23:09:53 · 1585 阅读 · 0 评论 -
Yii2 API认证和授权
Authentication 认证RESTful API是无状态的, 因此这意味着不能使用 sessions && cookies。因此每一个请求应该带有一些 authentication credentials 因为用户的 authentication 状态可能不是保存在sessions || cookies 中的。一个通用的实例就是在发送每一个请求的同时带一个 secret acc原创 2015-06-08 08:49:16 · 2500 阅读 · 0 评论 -
Yii2 Unable to verify your data submission.
出现这个情况是因为表单提交时 被CSRF验证拦截了禁用掉即可 Web网页访问的时候form表单中会有对应的一个隐藏input:_csrf进行了验证才可以正常进行访问;而非网页访问方式(不通过Web表单)是无法通过csrf验证的。上述可以通过查看源代码发现有一个name=_csrf的hidden.可以在所在控制器设置$enableCsrfValidation=false;例:原创 2015-06-08 01:14:13 · 1670 阅读 · 0 评论 -
Yii2基本的访问控制AccessControl的一些理解
访问控制过滤Access Control Filter (ACF) 是一个简单的鉴权方法,很适合那些只需要简单访问控制的应用程序使用。顾名思义,ACF 是一个动作过滤器,可以被当作一个行为附属到一个控制器或一个模块中。ACF将通过检测 访问规则集合( access rules )来确定用户是否可以访问被请求的动作。原创 2015-06-08 00:29:51 · 5500 阅读 · 0 评论 -
Yii2的RESTful API开发
参考文档:http://www.yiiframework.com/doc-2.0/guide-rest.html以 DB 中的 news 表为例创建该资源的 RESTful API,最终的测试通过工具 POSTMAN 测试如下图;通过 yii2 ,非常方便的创建 RESTful API步骤:准备工作,配置友好的 URLManager创建News Model (via g原创 2015-06-08 08:50:49 · 2349 阅读 · 0 评论 -
Yii2 Restful API 原理分析
Yii2 有个很重要的特性是对 Restful API的默认支持, 通过短短的几个配置就可以实现简单的对现有Model的RESTful API本文通过分析rest部分源码,简单剖析下yii2 实现 restful 的原理,并通过一些定制实现 对 关联模型的RESTful api 操作。~ 代表 extends from 的关系| | rest/| | |-Action.ph原创 2015-06-08 08:54:44 · 1420 阅读 · 0 评论 -
Yii2—模型(Model)
模型(Model) 模型的定义 属性 属性的定义 属性的访问 属性的批量读取和赋值 属性标签 场景 验证 验证规则的实现 自定义验证器和内置验证器 条件验证 验证规则和批量赋值Yii中的模型有以下基本特征: 属性声明:可以在模型里面定义自己需要的属性。 属性标签:每个属性都有一个对应的标签以便在界面上显示友好的名称 批量属原创 2015-06-09 08:18:08 · 5987 阅读 · 0 评论 -
Yii2设置别名函数(setAlias)和获取别名函数(getAlias)
首先说说什么是别名。在Yii中有很多的路径,在开发的过程当前我们也会使用一些路径。一般来说都需要使用绝对路径,但绝对路径都很长。所以,为了方便的使用路径,可以在Yi中i给每个路径起个名称,这个名称就是别名。别名的格式:别名必须以“@”字符开头,别名中还可以包含“/”。如("@www"为根别名,"@www/test"就为子别名)别名最后的目录分隔符(“\”或者“/”)都将原创 2015-06-08 21:53:58 · 5117 阅读 · 0 评论 -
Yii2验证器(Validator)
先看一下验证器的使用。public function rules(){ return [ [['email', 'password'], 'required'], ['password', 'string', 'min'=>6], ];}如上所示,验证器主要使用在rules里面,对当前model里面的属性值原创 2015-06-09 22:06:51 · 2425 阅读 · 0 评论 -
Yii2基于角色的访问控制权限RBAC表结构原理分析
这里有几个概念很重要权限:就是指用户是否可以执行哪些操作。如:小张可以发帖、回帖、浏览,小红只能回帖、浏览角色:就是上面说的一组操作的集合。如:高级会员有发帖、回帖、删贴、浏览的权限,普通会员只有回帖、浏览的权限。比如小张是高级会员,那么他就可以执行发帖、回帖、删贴、浏览。而小红是普通会员,所以它就只能回帖、浏览。另外角色还可以继承,中级会员除了普通原创 2015-06-09 22:32:32 · 2603 阅读 · 0 评论 -
Yii2中多表关联查询(join、joinwith)
我们用实例来说明这一部分表结构现在有客户表、订单表、图书表、作者表,客户表Customer (id customer_name)订单表Order (id order_name customer_id book_id)图书表 (id book_name author_id)作者表原创 2015-06-09 21:34:15 · 868 阅读 · 0 评论 -
Yii2—控制器(Controller)
控制器(Controller) 基本概念 路由 默认路由 动作的参数 在动作中定义参数 从请求(request)中获取参数 独立动作 动作过滤器(Action Filters) 捕获所有的请求 自定义响应类控制器(Controller)是应用程序中最关键的部分之一,它决定了如何处理传递进来的请求(Request),以及生成相应的响应(Response)。大部分的控制器都会处理一个Http的请求,然后返原创 2015-06-09 08:32:31 · 1539 阅读 · 0 评论 -
Yii2创建表单(ActiveForm)
由于表单涉及到一些验证方面的信息,属性设置又比较多、比较复杂,所以哪里有什么不正确的地方请留言指点目录表单的生成表单中的方法ActiveForm::begin()方法ActiveForm::end()方法getClientOptions()方法其它方法:errorSummary、validate、validateMultiple表单中的参数表单form自身的原创 2015-06-08 23:37:24 · 1422 阅读 · 0 评论 -
Yii2主题(Theme)
主题功能大家并不陌生,在Yii中同样也提供了主题功能。首先看看主要的配置方式:'components' => [ 'view' => [ 'theme' => [ 'pathMap' => ['@app/views' => '@app/themes/basic'], 'baseUrl' => '原创 2015-06-08 23:33:34 · 1233 阅读 · 0 评论 -
Yii2创建控制器(createController)
yii中创建控制器的是在application中的request通过UrlManager解析得出路由信息的,然后再由yii\base\Module中的public function runAction($route, $params = [])方法来创建控制器,最后由控制器再执行相应的动作。首先得明确,Yii中的路由分三种情况:第一种是带有模块的(mod原创 2015-06-08 22:36:37 · 1573 阅读 · 0 评论 -
Yii2的YiiBase自动加载类、引用文件(autoload)
在Yii2中这个函数是用来加载类的,没有直接引用文件的相关实现。但是这个也可以用来引用文件。 public static function autoload($className) { /* * $classMap是一个name-value数组, * name为类的名称,原创 2015-06-08 22:10:22 · 937 阅读 · 0 评论 -
Yii2 XSS 防范策略
XSS 漏洞修复原则: 不相信客户输入的数据注意: 攻击代码不一定在《script》《/script》中将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了.只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。对数据进行Htm原创 2015-06-08 08:48:14 · 813 阅读 · 0 评论 -
Yii2为ActiveForm的widget组件设置属性
我这里用的验证码,很简单,添加一个options数组即可 $form->field($model, 'verifyCode')->widget(yii\captcha\Captcha::className(), [ 'template' => '{input}{image}', 'options'=>['placeholder'=>'验证码','class'=>'form-cont原创 2015-06-08 01:15:04 · 2966 阅读 · 0 评论 -
从Yii2的Request看其CSRF防范策略
先画一幅流程图理理思路:1. 问题是这样的:今天在处理一个这样的需求, 在 app\controllers\LoginController.php中定义了index方法来处理登录(主要是用于非Web页面登录,比如Curl -X POST http://api/login):结果呢, 无论是用测试工具POSTMAN还是用命令行CURL请求总是会得到 http400:Bad Reque原创 2015-06-08 01:16:15 · 634 阅读 · 0 评论 -
Yii2 使用Ajax自动获取表单数据
Yii2 使用Ajax自动获取表单数据有两张表,表结构如下,locations表存放的省份和邮编等信息,两张表的model和curd均使用gii生成yii2advanced.customers表customer_id:int(11)customer_name:varchar(100)zip_code:varchar(20)city:varchar(100)provi原创 2015-06-08 01:11:34 · 1932 阅读 · 0 评论 -
Yii2 DropDownList用法
这里以实际应用为例讲解Yii2 DropDownList用法。有一张分类表,无限极分类那种,表结构如下,pid就是父分类ID 这里我们要实现:新建分类的时候,父分类可以从所有分类中任选一个或者不选编辑分类时,父分类不能选择当前编辑的分类。。。如果选自己,父分类就是自己了,必然出错!实现代码如下,我就贴上form的全部代码吧php use common\model原创 2015-06-08 01:10:17 · 2545 阅读 · 0 评论 -
Yii2 实现上下联动的下拉框
首先我先解释下什么是上下联动的下拉框假如一个view里面有两个select,第一个是公司名,第二个是分公司名。公司有多个,每个公司又有多个分公司,我们实现的就是点击当前公司后,分公司里面显示的事当前公司的分公司。或者你直接理解成选择所属省份后,下面的select显示的是当前省份的县。原理点击第一个select后,执行ajax获取当前公司的分公司,并使用jquery修改分公司内容原创 2015-06-08 01:09:41 · 1510 阅读 · 0 评论 -
Yii2让关联字段支持搜索功能
这里有两张表,表结构如下,companies_compay_id 为外键 在视图中,可以用companiesCompany.company_name来获取公司名,不过这样是不支持搜索的。想要支持搜索功能,需要在branches的index视图添加以下代码 GridView::widget([ 'dataProvider' => $dataProvider, 'fil原创 2015-06-08 00:56:02 · 1698 阅读 · 0 评论 -
Yii2中的OAuth扩展及QQ互联登录
Installation 安装通过 composer 安装该应用php composer.phar require --prefer-dist yiisoft/yii2-authclient "*"Quick start 快速开始更改Yii2的配置文件config/main.php,在components中增加如下内容'components' => [ 'authClie原创 2015-06-08 01:15:38 · 2706 阅读 · 0 评论 -
Yii2使用过程中一些小技巧的总结
yii2视图中渲染到另一个视图中yii2将参数传递到layouts/main.php中yii2在视图内进行渲染yii2使用下拉框设置默认值以及默认选中yii2checkboxList小部件默认选中yii2自带的下载功能原创 2015-06-09 23:46:05 · 2473 阅读 · 0 评论 -
Yii2.0开发——控制器(Controller)
本文包含以下方面的内容基本概念路由默认路由动作的参数在动作中定义参数从请求(request)中获取参数独立动作动作过滤器(Action Filters)捕获所有的请求自定义响应类控制器(Control)是应用程序中最关键的部分之一,它决定了如何处理传递进来的请求(Request),以及生成相应的响应(Response)。大部分的控制器都会处理一个Ht原创 2015-05-14 08:27:46 · 687 阅读 · 0 评论 -
yii2-app-advanced的composer安装过程
你的php版本必须是php5.4以上1.首先需要下载应用模板,分为基础模板和高级应用模板,这里我以高级应用模板为例子 : 去这里现在高级应用模板 https://github.com/yiisoft/yii2-app-advanced 2.下载完之后解压放在www目录,我是放在 D:\wamp\www\yii2\advancedcmd dos命令进入这个D:\wamp\www\原创 2015-04-15 10:02:29 · 2424 阅读 · 0 评论 -
Yii2详解Model类
models是展示业务数据、规则和逻辑的对象。你可以通过扩展yii\base\Model或者其子类来创建model类, 这个基类支持下面的特性:Attributes展示业务数据,可以像访问正常的对象属性或者数组元素一样来访问Attribute labels为属性指定显示的labelMassive assignment支持一步激活多个属原创 2015-06-08 08:38:57 · 1560 阅读 · 0 评论 -
Yii2 RESTful API开发的相关模型
通过 yii2\rest\ActiveController 可以方便的用几行代码创建针对某个资源的api,但是默认是最简单的逻辑,并不支持对relatedModel的操作。这里做一个扩展。参考GitHub 项目地址: https://github.com/Ganiks/yii2rest还是建议将 \yii\rest\ 拷贝出来另作一个命名空间,在这个基础上做扩展针对 view原创 2015-06-08 08:56:18 · 749 阅读 · 0 评论 -
Yii2禁用默认引入的jquery
不想使用框架的jquery,因为有时候内置的jquery版本太高了!很多东西都不支持,所以得引入自定义的jquery。在配置文件的component中添加如下代码来禁用默认的jquery'assetManager' => [ 'bundles' => [ 'yii\web\JqueryAsset' => [ 'sourcePath' => null原创 2015-06-08 01:12:09 · 3411 阅读 · 0 评论 -
Yii2同时搜索多个字段
Yii2中搜索字段是用的andFilterWhere这个方法,用它可以搜索一个一段。如果是搜索多个字段的话 ,比如搜索文章标题和文章内容是是否包含需要搜索的关键词,因为他们两个的关系是or,所以就要用到orFilterWhere这个方法下面就是全部的代码原创 2015-06-08 00:58:06 · 1948 阅读 · 0 评论 -
Yii2关联查询用法
有两张表,post和category,post.cate_id对应category.id使用Gii上升这两张表的model然后post的model中有如下代码public function getCate(){ return $this->hasOne(Category::className(), ['id' => 'cate_id']);} 在post这个model最下原创 2015-06-08 00:46:19 · 380 阅读 · 0 评论 -
Yii2 RESTful API 验证的一个实现思路
use the demoThough here my client and server(api) are the same project, both http://192.168.4.126 (inner ip) , realized by Yii2 Frameworkthe logic are separated, and you can split client side ou原创 2015-06-08 09:01:44 · 1119 阅读 · 0 评论 -
Yii2 RESTful API Auth Mechanism
| | | |~filters/| | | | |~auth/| | | | | |-AuthInterface.php| | | | | |-AuthMethod.php| | | | | |-CompositeAuth.php| | | | | |-HttpBasicAuth.php| | | | | |-HttpBearerAuth.php| | | | | `-QueryPa原创 2015-06-08 09:00:23 · 1240 阅读 · 0 评论 -
Yii 2发送带附件的邮件
Yii 2发送带附件的邮件首先使用gii创建下面这张表的Model和curd方法创建成功后,在配置文件的components中添加'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', // send all mails to a file by de原创 2015-06-08 01:10:57 · 1759 阅读 · 0 评论 -
Yii2上传文件
Yii2上传文件数据表结构如下,logo字段储存的logo地址,其他字段与本文无关,不必在意。yii2advanced.companies表company_id:int(11)company_name:varchar(100)company_email:varchar(100)company_address:varchar(255)logo:varchar(200)原创 2015-06-08 01:09:00 · 661 阅读 · 0 评论 -
Yii2中多表关联查询(hasOne、hasMany、join、joinwith)
我们用实例来说明这一部分表结构现在有客户表、订单表、图书表、作者表,客户表Customer (id customer_name)订单表Order (id order_name customer_id book_id)图书表 (id book_name author_id)作者表原创 2015-06-08 00:47:53 · 22089 阅读 · 0 评论