Yii2
文章平均质量分 61
xmlife
这个作者很懒,什么都没留下…
展开
-
Yii2 rbac权限控制之Rule实现及应用详解
对于一般的权限系统而言,我们之前做的rbac一般情况下是足够的,即时没有rule,相信你也能实现我们用rule实现的功能。我们就以官网的例子给出一个具体的操作教程,看看这个神秘的rule到底是做什么的!看需求:我们有管理员和普通用户,对于文章系统而言,我们允许管理员对文章的任何操作,但是只允许普通用户创建文章和修改自己创建的文章,注意哦,是允许其修改自己创建的文章,不是不允许修改文章,转载 2017-06-30 04:31:20 · 1414 阅读 · 0 评论 -
yii2-rules条件验证应用
--Core validator 如 required 同时支持客户端验证和服务端验证;Inline validator 如 validname 不支持客户端验证。 validname validator 必须提交表单后才能触发验证。 --自定义函数验证Only For Server validator,如果没有required,需要加'skipOnEmpty' => false, o原创 2016-08-27 11:33:02 · 3592 阅读 · 0 评论 -
YII框架的依赖注入容器DI使用方法-实例说明
依赖注入(Dependency Injection,DI)容器就是一个对象,它知道怎样初始化并配置对象及其依赖的所有对象。所谓的依赖就是,一个对象,要使用另外一个对象才能完成某些功能。那么这个对象就依赖于被使用的对象。例如:/** * 厨师 */class cook { /** * 制作食物 */ public function coo转载 2016-08-02 12:19:16 · 2338 阅读 · 1 评论 -
yii2-国际化,可参考开发文档权威指南-国际化
国际化国际化(I18N)指软件应用设计成无须改动引擎即可应用于不同语言和地区的过程。对于 web 应用,这点特别重要,因为潜在用户是全球范围的。 地区和语言在 Yii 应用中定义了两个语言属性:[[yii\base\Application::$sourceLanguage|source language]]和[[yii\base\Application::$language|t转载 2016-07-08 21:58:58 · 1392 阅读 · 0 评论 -
php-composer-phar常用命令集
为了从命令行获得帮助信息,请运行 composer 或者 composer list 命令,然后结合 --help 命令来获得更多的帮助信息。命令行全局参数进程退出代码初始化 init - - 参数安装 install - - 参数更新 update - - 参数申明依赖require - - 参数全局执行global搜索 searc转载 2016-07-18 21:06:18 · 6279 阅读 · 0 评论 -
Yii 2.0加载自定义类或命名空间
Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同。这篇文章讨论一下如何利用Yii 2.0的自动加载机制,向系统中引入自定义类和命名空间。本文旨在抛砖引玉,如果有理解不当敬请指正,欢迎大家把自己的方法拿出来分享。我们希望被引入的类应该达成一下两点:在应用中的任意位置可以使用该类名或命名空间,而不用显式调用require()/include()。转载 2016-07-04 00:32:54 · 2958 阅读 · 1 评论 -
yii2-过滤器检查安全请求和跨域访问设置
过滤器过滤器是 控制器 动作 执行之前或之后执行的对象。 例如访问控制过滤器可在动作执行之前来控制特殊终端用户是否有权限执行动作, 内容压缩过滤器可在动作执行之后发给终端用户之前压缩响应内容。过滤器可包含 预过滤(过滤逻辑在动作之前) 或 后过滤(过滤逻辑在动作之后),也可同时包含两者。使用过滤器 过滤器本质上是一类特殊的 行为,所以使用过滤器和 使用 行为一样。转载 2016-07-03 20:05:01 · 12879 阅读 · 0 评论 -
yii框架实现注册页面短信验证60秒倒计时
通过Yii2 rules验证手机号通过js验证是否为手机号通过Ajax验证手机是否在数据库存在通过ajax发送短信验证码Js倒计时功能(cookie保存信息,防刷新)通过Yii2 rules 验证手机短信码是否合法。实现详细步骤和代码前端表单设计,这里主要定义了手机号码filed和和发送短信的按钮 'id' =>'second'$form = ActiveForm:转载 2016-06-30 00:27:53 · 1587 阅读 · 0 评论 -
Yii2.0-文件上传操作类-UploadedFile
Form modelFirst of all, you need to create a model that will handle file upload. Create models/UploadForm.php with the following content:namespace app\models;use yii\base\Model;use yii\web\Upl转载 2016-07-13 15:48:43 · 5068 阅读 · 0 评论 -
yii2-如何控制没有登录的情况下,全部跳转到登录页面
方法一:为了以后做权限控制,增加一个 控制器中间层, 在中间层用 beforeAction 做统一的过滤,代码如下 /** * 在程序执行之前,对访问的方法进行权限验证. * @param \yii\base\Action $action * @return bool * @throws ForbiddenHttpException转载 2016-07-13 17:18:16 · 9253 阅读 · 1 评论 -
Yii2发送短信验证码完全解决方案
通过Yii2 rules验证手机号通过js验证是否为手机号通过Ajax验证手机是否在数据库存在通过ajax发送短信验证码Js倒计时功能(cookie保存信息,防刷新)通过Yii2 rules 验证手机短信码是否合法。实现详细步骤和代码前端表单设计,这里主要定义了手机号码filed和和发送短信的按钮 'id' =>'second'$form = ActiveForm:转载 2016-06-30 00:28:30 · 5975 阅读 · 0 评论 -
Yii2-使用afterLogin和beforLogin自动更新上次登录时间
先明确两点* 如果User Model是继承自 ActiveRecord* 而afterLogin 和 beforeLogin 是 yii\web\User 的两个事件那么把 yii\web\User 的两个事件挂载在 User Model 肯定不会触发了。可以通过配置来解决,配置是支持事件挂载的;例如:'components' =>[ ...转载 2016-08-06 10:35:49 · 3231 阅读 · 1 评论 -
Yii2-GridView常见操作
下拉搜索日期格式化并实现日期可搜索根据参数进行是否显示链接可点击跳转显示图片html渲染自定义按钮设定宽度等样式自定义字段自定义行样式增加按钮调用js操作yii2 GridView 下拉搜索实现案例教程yii2 GridView 日期格式化并实现日期可搜索 案例是否显示某列案例我们举一个简单的案例条件:有一个get形参数type需求:转载 2016-05-30 22:45:50 · 11020 阅读 · 1 评论 -
Yii2-常用应用配置
1. 资源 装配 /assets/AppAsset.php2.入口index.php配置 /web/index.php配置 defined('YII_DEBUG') or define('YII_DEBUG', false); //debug mode: true defined('YII_ENV') or define('YII_ENV', 'prod')原创 2015-05-13 17:56:14 · 3849 阅读 · 0 评论 -
Yii2.0 依赖注入(DI)和依赖注入容器详解一
依赖注入和依赖注入容器为了降低代码耦合程度,提高项目的可维护性,Yii采用多许多当下最流行又相对成熟的设计模式,包括了依赖注入(Denpdency Injection, DI)和服务定位器(Service Locator)两种模式。关于依赖注入与服务定位器, Inversion of Control Containers and the Dependency Injection pat转载 2017-05-18 00:53:05 · 1568 阅读 · 1 评论 -
Yii2 中 ActiveForm 和 GridView 使用 Pjax
应用场景:使用 ActiveForm表单修改数据后,提交表单,然后自动更新 GridView数据如果自定义非ActiveForm表单按钮事件,可用ajax + $.pjax.reload() 代替一个如何在 Yii2 的 GridView 和 ActiveForm 扩展中使用 Pjax 的例子。这个例子使用一个数据库表 "countries" 字段为 id, nam转载 2017-01-14 22:12:01 · 2557 阅读 · 0 评论 -
Yii2场景使用方法
模型层:public function rules(){ return [ [['name', 'account', 'pwd'], 'string', 'max' => 11], ['account','required','message'=>'用户名不能为空'], ['pwd','required','message'=>'密码不转载 2016-12-30 22:31:42 · 2580 阅读 · 0 评论 -
Yii2数据安全查询,防止sql注入漏洞
1$id = Yii::$app->request->get('id','');//get获取参数1.1 直接把获取的$id代入(有问题)12345$sql = "SELECT * FROM tab WHERE id = {$id}";$db转载 2016-12-18 23:47:10 · 9960 阅读 · 0 评论 -
Yii2文件上传UploadedFile,单文件和多文件上传及验证示例Debug-OK
文件上传在Yii里上传文件通常使用yii\web\UploadedFile类,它把每个上传的文件封装成 UploadedFile 对象。结合yii\widgets\ActiveForm和models,你可以轻松实现安全的上传文件机制。创建模型 和普通的文本输入框类似,当要上传一个文件时,你需要创建一个模型类并且用其中的某个属性来接收上传的文件实例。你还需要声明一条验证规则以验证上传的文转载 2016-11-05 13:13:20 · 6670 阅读 · 0 评论 -
Yii 2.0 事件使用示例
为什么要使用事件?可能我们会有下面的业务需求,每当一个新用户注册成功会我们要给管理员发封邮件,还要有推送通知。之前的代码可能是这样if($model->save()){ // 注册成功, 跳转}要写成这样if($model->save()){ $mailObj->sendNewUserMail($model); $notification->setN转载 2016-10-22 09:46:53 · 3227 阅读 · 1 评论 -
yii2无限分类实例-非数据库递归
基于yii2.0给大家做一个无限分类的实例,废话不多说: 1、设计数据表,很简单就三个字段 CREATE TABLE `category` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `cate_name` varchar(255) DEFAULT NULL,转载 2016-09-19 10:57:57 · 3148 阅读 · 0 评论 -
Yii2-GridView 自定义关联字段带搜索和排序功能
要在订单(Order)视图的gridview中显示出客户(Customer)姓名,并使其具有与其它字段相同的排序和搜索功能。数据库结构订单表order含有字段customer_id 与 客户表customer的id字段关联首先确保在Order Model中包含以下代码:public function getCustomer(){ return $this->hasOne(转载 2016-09-18 11:41:49 · 5626 阅读 · 1 评论 -
Yii2-使用ActiveRecord数据操作数据分页的记录重复问题
可能排序问题引起,对于同等条件的排序如 orderId 都==0最后再指定的能进一步区分orderId的字段来排序,如ID,不一定要唯一,只要能对orderId=0 的记录组合排序唯一即可原创 2016-09-01 12:10:03 · 2585 阅读 · 0 评论 -
Yii2-从ActiveRecord获取原生sql
从ActiveRecord获取原生sql$resultSets->createCommand()->getRawSql()原创 2016-09-01 11:48:46 · 6446 阅读 · 0 评论 -
Yii2-Session超时设置无效问题处理
$lifeTime = 5; //因修改了SESSION_ID,设置过期时间必须指定session_name //session_set_cookie_params($lifeTime, '/'); //默认session name:PHPSESSIONID //session_start();原创 2016-07-10 22:30:55 · 8481 阅读 · 0 评论 -
yii2-环境配置说明
环境配置的生效规则说了这么多,现在串起来看。运行 init 脚本就会将某一环境的系列文件复制到当前的文件中, 这些文件就是index.php yii 入口文件和 *-local.php 配置文件。 复制到哪呢?复制到了/path/to/digpage.com/ 目录下面, 并覆盖frontend backend consolecommon 中对应的 config转载 2016-06-06 22:30:27 · 3429 阅读 · 0 评论 -
Yii2-数据库分表, id 统一生成方法
数据库做分表之后,没法使用简单的 auto_increment id 来做 primary key,为了维持 id 在多个物理分表上的全局唯一,我们需要一种替代 auto_increment 方式的统一 id 生成方法。 所有的 id 都统一从这里生成,确保不同分表的 id 是全局唯一的。只要保证了不同物理分表的 id 是全局唯一的,我们就能很容易的在不同分表之间迁移数据,而不同担心 id 冲转载 2016-06-26 12:38:22 · 3360 阅读 · 0 评论 -
YII2-数据查询Active Record方法
查询数据AR 提供了两种方法来构建 DB 查询并向 AR 实例里填充数据:•[[yii\db\ActiveRecord::find()]]•[[yii\db\ActiveRecord::findBySql()]]以上两个方法都会返回 [[yii\db\ActiveQuery]] 实例,该类继承自[[yii\db\Query]], 因此,他们都支持同一套灵活且强大的 DB 查询方原创 2015-06-12 14:52:35 · 15764 阅读 · 0 评论 -
YII2-数据库数据查询方法,关联查询with, joinWith区别和分页
1.with关联查询 例如,查询评论 $post = Post::find()->with('comments'); 等价于以下结果集 SELECT * FROM `post`; SELECT * FROM `comment` WHERE post_id IN (...) 结合Pagination分页查询OK2.joinWith关联查询,返回 $po原创 2015-06-12 14:29:47 · 6897 阅读 · 0 评论 -
YII2-数据库yii\db\Query 查询方法
yii\db\Query 查询方法A typical usage of the query builder looks like the following:$rows = (new \yii\db\Query())->select('id, name')->from('user')->limit(10)->all();// which is equivalent to原创 2015-06-12 14:56:32 · 6509 阅读 · 0 评论 -
yii2-整合PayPal SDK 待测
下载安装SDK包 install the paypal/rest-api-sdk-php package 然后按以下步骤操作1. Create a component to glue Paypal to Yii2Create a components folder in your @app directory. If you are using the basic te转载 2015-07-01 20:03:58 · 1213 阅读 · 0 评论 -
Yii2-多表关联查询(with、join、joinwith)示例
表结构现在有客户表、订单表、图书表、作者表,客户表Customer (id customer_name)订单表Order (id order_name customer_id book_id)图书表 (id book_name author_id)作者表转载 2015-06-04 09:16:40 · 3564 阅读 · 0 评论 -
Yii2-设置和获取、删除Cookies空值分析
Yii2-设置和获取Cookies空值或值没有变化原因:1.不要使用相同的request url, 否则需要刷新才能获取值可在不同的动作中设置和调用2.不要在函数中使用exit来中止脚本的执行,否则设置值无效public function actionSetCookie() { $cookies = Yii::$app->response-原创 2015-06-26 15:43:52 · 10985 阅读 · 0 评论 -
Yii2 - 场景scenarios用法
举个简单的例子,现在在 post表里面有title image content 三个的字段,当我创建一个 post的时候,我想三个字段全部是必填项,但是你修改的时候,title content 两个字段是必填的, iamge可以不填写。正常的情况下,[['title', 'content', 'image'], 'required',], 但是我们更改的时候 只需要 [['title', '转载 2015-06-03 16:49:10 · 2846 阅读 · 0 评论 -
Yii2 自定义class、全局函数
1、在app\components下新建MyComponent.phpnamespace app\components; use Yii;use yii\base\Component;use yii\base\InvalidConfigException; class MyComponent extends Component{ public function welc转载 2015-06-01 11:52:06 · 2467 阅读 · 0 评论 -
Yii2 - 数据库访问对象
配置好数据库连接后,你就可以通过下面的语法来使用了:1$connection= \Yii::$app->db;你可以参考 [[yii\db\Connection]] 以了解有哪些属性可以配置。而且你可以配置多个连接,在应用程序中同时使用它们:12$primaryConne转载 2015-05-29 16:17:03 · 1477 阅读 · 0 评论 -
Yii2 - 应用结构 - 创建模块Modules
模块是独立的软件单元,由模型, 视图, 控制器和其他支持组件组成, 终端用户可以访问在应用主体中已安装的模块的控制器, 模块被当成小应用主体来看待,和应用主体不同的是, 模块不能单独部署,必须属于某个应用主体。创建模块模块被组织成一个称为[[yii\base\Module::basePath|base path]]的目录, 在该目录中有子目录如controllers,models, v转载 2015-05-29 17:21:12 · 4820 阅读 · 0 评论 -
Yii2-整合PayPal-PHP-SDK,实测
Paypal SDK运行环境PHP 5.3 或更高curl, json & openssl extensions 必须启用1.下载 (1)下载 composer.json, 使用php composer.phar安装 (a)用命令行到项目根目录,eg: /project, (b)解压复制上面的下载文件到根目录/projec原创 2015-07-22 12:07:42 · 2441 阅读 · 0 评论 -
Yii2-条件Where使用说明
在Yii的Model里进行查询Where方法声明为static where( $condition )复制代码其中参数 $condition类型为字符串或者数组1、字符串字符串是最简单的,直接按sql中的where条件写就可以,如$condition = 'name=\'xiaoming\' and age>10';转载 2015-09-01 18:08:31 · 6382 阅读 · 0 评论 -
Yii2-高级应用程序模板在同一域名下使用配置
修改 advanced/backend/config/main.php 文件如下:return [ 'homeUrl' => '/admin', 'components' => [ 'request' => [ 'baseUrl' => '/admin', ], 'urlManager' => [转载 2016-01-24 14:02:00 · 2175 阅读 · 0 评论