![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
YII
肆月之风
喜欢交朋友,喜欢编程的朋友们可以加我。
展开
-
产品框架中开发时为何页面加载这么的慢??
、CSS,有人也许会问是不是页面缓存的问题啊,第二次就很快了啊。。。。那么看看第二次加载会不会好一些? 神马情况,215ms!!明明没有加载任何JS、CSS,为何非但没有缩短时间,反而更可耻的增加了几毫秒的时间。。。。这是为什吗? 事已至此,只能分析分析了: 1.加载系统菜单,系统菜单会扫描app下所有menu.php文件,加载php文件中的菜单项,加载完成后会生成菜单的临时文件写到config下的menus.php中,下次再次加载时会判断临时文件是否存在,不存在则重新加载,但是条件里还原创 2016-01-23 22:56:31 · 330 阅读 · 0 评论 -
NII 单张图片AJAX上传+图片预览
功能说明:1.适用于系统管理、卖家中心等后台。2.点击控件会立即进行AJAX上传,上传成功后可以通过后台返回图片的保存路径和访问地址给前台进行预览图片。3.在编辑页面此控件可以通过value设置预览图片的访问地址。4.建议上传图片时将上传的Model属性和保存到数据库中的属性进行分开,因为ajax上传后返回存储值由于js安全机制无法直接赋值给type='file'的控件,所以需...原创 2016-01-20 14:56:31 · 194 阅读 · 0 评论 -
YII验证器 DefaultValidator - 默认值验证器
功能说明:1.后台校验:验证时如果值为空则赋值默认值。2.前台校验:鼠标失去焦点时进行校验;如果存在非空(required)校验则先进行非空验证,如果无非空验证则在鼠标失去焦点后自动填充默认值。3.前台校验:默认值验证器会自动屏蔽掉对应表单元素的onkeyup事件校验触发的验证,所以如果DefaultValidator和TrimValidator同时应用于同一个表单元素,将导致Tr...原创 2016-01-19 20:22:11 · 550 阅读 · 0 评论 -
Yii2 ActiveRecord 为属性设置默认值
Model继承ActiveRecord后,如果想为属性设置默认值,可以重写构造函数,代码如下:/** * 构造函数 * * @param array $config */ public function __construct ($config = []) { $this->setAttribute('is_parent', 1...原创 2016-01-19 14:08:54 · 591 阅读 · 0 评论 -
Yii2 ActiveRecord 添加额外属性
如果你的Form表单中的属性有部分不是在数据库中,而你的Mode又集成了ActiveRecord,这时想通过$model->load()加载那部分未在数据库定义的属性可以重写attributes()函数,例如:/** * * {@inheritDoc} * * @see \common\db\ActiveRecord::attributes() */ ...原创 2016-01-19 14:06:29 · 939 阅读 · 0 评论 -
Smarty 封装 YII2 Form表单API - 开关 Switch
表单元素名称:开关 调用基本格式: {input type='switch' model=$model field='is_parent' value='1' uncheck='0' items=[0='否, '1'=>'是']} API说明:1.开关的“type”必须为switch2.value指定了勾选时的值,默认为1;uncheck指定了取消勾选时的值...原创 2016-01-19 13:41:57 · 323 阅读 · 0 评论 -
JS打开新窗口如何避免被浏览器拦截
直入主题:1.大致思路如下: var win_object = window.open();// 如果有ajax则如下$.ajax({.....success: function(){ // 成功后则打开新页面 win_object.location = '新页面的URL';},error: function() { // 失败关闭...原创 2016-08-12 16:24:00 · 517 阅读 · 0 评论 -
YII2 Controller中如何进行权限校验
Controller中进行权限校验的方式:第一种: 通过can函数来判断是否有某个权限的执行权限,如果没有则抛出未授权的异常,通常在Controller的Action开头使用,如下/** * 发布商品 */public function actionAdd (){ if(! can('shop-goods-add')) { throw new \commo...原创 2016-06-22 13:48:21 · 889 阅读 · 0 评论 -
登录、收藏、对比、添加购物车接口
购物车接口 一、引入JS1.{script src='@web/js/jquery.fly.min.js,@static/js/szy.cart.js'} 二、使用 1.加入购物车 // 添加购物车// @param sku_id 商品SKU编号// @param number 数量// @param options 其他参数 {is_sku-是...原创 2016-06-02 13:43:50 · 591 阅读 · 0 评论 -
YII2 AJAX唯一性校验
if(empty($this->role_id)){ $rules[] = Model::addRule('role_name', 'unique');}else{ $rules[] = Model::addRule('role_name', 'unique', [ 'params' => 'role_id', 'filter' =>...原创 2016-05-17 22:42:17 · 187 阅读 · 0 评论 -
上传图片
// site/upload-image 上传图片至非图片空间的上传路径// site/upload-goods-image 上传商品图片// site/upload-goods-desc-image 上传商品详情图片// site/upload-ad-image 上传广告图片$("body").on("change", "#file_goods_image", functi...原创 2016-05-09 10:48:05 · 93 阅读 · 0 评论 -
YII2 在页面中动态创建验证规则
有时候有一些表单元素没有对应的Model,这个时候如果要对这类的元素进行表单验证,可以选择如下几种方式:1.利用jquery.validate.js的验证规则,在表单元素上绑定data-rule-<验证规则>的方式进行验证 2.利用php函数clientRule($rule, $options = []) 动态创建验证规则,下面以手机号码为例 1.页面中插入验证规...原创 2016-05-06 00:35:59 · 495 阅读 · 0 评论 -
YII2 系统中引用在线文本编辑器
在系统中如果需要使用在线文本编辑器参考下面代码:1.在页面中加入文本域,一定要有一个指定的Id:{input type='textarea' id='content' model=$model field='content'} 2.在页面底部引入js<!-- 在线文本编辑器 -->{script src='@static/js/editor/kindedito...原创 2016-05-04 14:25:23 · 145 阅读 · 0 评论 -
YII2 如果设计两级路由的Controller
在开发中一般遇到的路由都是三级的,基本都是如下格式:/module/controller/action 但是在一些功能方面需要给用户显示两级的路由会更好,比如注册、购物车、等等,更希望的如下的路由:/cart/add/register/mobile/register/email/user/address 在YII中可以如下实现: 1.在main-...原创 2016-05-03 10:50:08 · 417 阅读 · 0 评论 -
tablelist.js - ajax删除列表上的数据
tablelist.js对删除列表上的记录进行封装,通过调用remove函数配合后台php代码可以移除列表上的数据。 一、使用1.页面引入tablelist.js,默认情况下,布局文件main.tpl已经引入。2.页面初始化tablelist并使用: 删除按钮绑定业务ID:object_id<a href="javascript:void(0);" obje...原创 2016-02-01 09:39:17 · 425 阅读 · 0 评论 -
Jquery插件序列化表单为JSON对象
// 合并赋值 function mergeSetValue(object, name, value, merge) { // 相同的name不进行替换,而是进行合并,合并成为一个数组 if (merge == false) { object[name] = value; } else { // 相同的name不进行替换,而是进行合并,合并成为一个数组...原创 2016-02-15 18:59:04 · 92 阅读 · 0 评论 -
YII 对话框
感觉后台的弹出窗口一直是系统功能实现的弱项,由于系统大部分采用了layer,但是layer实现ajax加载网页内容的显示效果与系统兼容性不是很好,导致每个升级到弹出窗口的展现都需要前端人员参与设计,十分耗时,所以对前端的代码进行了简单的封装,使用方式如下:1.依赖jquery.method.js,后台作为公共函数已经引入,无需自己调用。2.使用方式:(一)最常用,也是非常建议的aj...原创 2016-04-07 22:38:34 · 142 阅读 · 0 评论 -
YII 商品选择器组件
系统中可能很多地方都需要选择商品,例如模板机制、活动等地方。系统中可参考商品赠品的功能实现。使用方法如下:1.引入js:{script src='@static/js/jquery.widget.js'} 2.在页面中指定组件的容器,所谓组件就是指ajax加载的一个已经实现了大部分功能的页面,为了方便管理,需要为此加载的页面指定一块区域来容纳它,一般容器可以选择DIV,方便前...原创 2016-04-06 08:59:28 · 184 阅读 · 0 评论 -
Filter缓存依赖
在分页查询的时候可以指定是否从缓存中获取数据,框架中开始设定的是ajax不走缓存,而非ajax才走缓存,这样做在后期做复杂业务的时候会有一定的局限性,所以编写了过滤器缓存依赖,用来指定根据提交的数据而进行自动判断是否从缓存中后期query数据。<?phpnamespace common\caching;use yii\caching\Dependency;use co...原创 2016-03-26 13:53:50 · 304 阅读 · 0 评论 -
YII 地区多级联动选择器组件
系统中的地区列表功能重新做了,并定制了许多地方都需要使用的地区列表的多级联动的组件,使用方法如下:1.在页面中定义一个容纳组件的容器,例如:div、span等等。2.在页面中引入:{script src='@static/js/jquery.region.js'} 3.在页面加载完成后初始化组件: $("#region_container").regionselector...原创 2016-04-13 20:38:12 · 154 阅读 · 0 评论