Yii2-GridView添加导出功能

首先我们需要用Composer安装一个导出组件:kartik-v/yii2-export 这个组件依赖一个PDF导出组件kartik-v/yii2-mpdf,100多M,所以安装可能很慢,需要耐心等候 不过新版本好像默认不依赖此PDF组件了 安装完毕后,打开config/web.php,给$config变量添加一个成员:

打开相应的

浅谈PHP中打开文件(fopen)的一些坑

准备自己实现一个基于文件的简单缓存类,用于一些小外包项目。原本只是打算按照特定的JSON格式进行存储,然后用很方便的两个函数 file_get_content 和 file_put_content 进行读写 后来想给缓存类加个自增/减的方法,用来做简单的统计之类。如果考虑到瞬间并发情况,为了防止两个请求互相干扰,就必须得上 文件锁 了 首先是 设置缓存,这个没啥难度: 首先一个$h = fopen

Yii2-GridView自定义活动列ActionColumn

本文同时收录于 超能小紫的Yii2学习笔记 用gii生成的CRUD非常方便,index视图自带的数据列表也很强大,最右侧默认还带有 查看详情、修改 和 删除 三大功能按钮 但是这三个按钮不一定够用。例如我们做文章列表时,可能还会需要 显示(发布)、隐藏(作为草稿) 之类的按钮,这时候我们就需要自定义活动列了 准备工作 首先我们跟着命名空间(yii\grid\ActionColumn)到 vendo

Yii2-GridView自定义数据列

本文同时收录于 超能小紫的Yii2学习笔记 用gii生成Model和CRUD之后,基本的增删查改和列表页都有了 但在很多时候,默认生成的列表所展示的 数据列 并不一定是我们想展示的 修改所展示的数据列 打开视图层目录,找到刚生成出来的index.php,阅读其代码 稍有常识的人都能看出, 控制数据列显示的就是GridView::widget方法的参数数组中的columns键 它大概长这样: [cr

Yii2-GridView给关联字段添加搜索和排序功能

本文同时收录于 超能小紫的Yii2学习笔记 需求 一个试用申请平台,需要在试用申请列表(Application)内展示申请人(User)姓名 准备工作 用gii生成Model、CRUD 如果你不知道什么是gii,请不要跟别人说你会用yii 数据库结构 申请表application 含有字段 user_id 与 用户表user 的 id 字段一对一关联 第一步 给Application模型添加如下方

PHP注释的艺术——phpDoc规范

用过IDE或看过其他源码的小伙伴们应该都见过类似下面这样的注释

看得多了就大概知道了一些规律。为了使自己的代码更加规zhuang范bi,也开始有样学样地写着这些注释 其实这种注释格式是有自己的名字的,它就叫—— PHPDOC PHPDoc 是一个 PHP 版的 Javadoc。它是一种注释 PHP 代码的正式标准。它支持通过类似 p

PHP开发中涉及到emoji表情的几种处理方法

最近几个月做微信开发比较多,存储微信昵称必不可少 可这万恶的微信支持emoji表情做昵称,这就有点蛋疼了 一般Mysql表设计时,都是用UTF8字符集的。把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串。这是怎么回事呢? 原来是因为Mysql的utf8字符集是3字节的,而emoji是4字节,这样整个昵称就无法存储了。这要怎么办呢?我来介绍几种方法 1、使用utf8mb

Windows下nginx+fastcgi+php的并发阻塞问题

接到一个需求,两个项目之间需要以接口形式通讯。我心想curl轻松解决,Easy! 啪嗒啪嗒啪嗒……代码撸完了,本地测试一下 浏览器一直转圈圈直到超时…… Why!? 没有任何错误提示信息,日志也没有任何新记录 用POSTMAN调试了一下刚写出的接口,没问题啊? 再试一次结果依旧,重启环境后再试也依旧 经过一番测试,我怀疑是不是我本地环境无法并发? 我访问项目A是一个请求,项目A访问项目B的接口则是

记一次诡异的php-fpm吃满CPU事件

一切的开始 昨天上午,我如往常一般坐在办公室电脑前,开始备份代码并准备上线新版本 备份完毕,上传代码,看起来一切都很顺利。更新完毕! The bomb has been planted! 打开官网看看效果。诶怎么一直转圈圈,好慢哦,公司网络又抽风了? 打开微博,一切正常啊。再次打开官网,还是一直转圈圈。尝试用手机和同事电脑,都无法打开官网,顿时我就懵逼了 赶紧从备份中恢复,再试,还是打不开,卧槽,

请勿滥用require_once,尤其是在类中

0x001 前景提要 require 包含一个文件,文件不存在时报错并终止脚本运行 require_once 同上。区别在于该文件如果已被包含过则不再包含,可防止变量、函数冲突等问题 0x002 问题重现 在一个小项目中两次require_once了 Codeigniter-Database ,并两次调用这个类中的初始化方法。发现第二次调用总会报错“数据库配置无效” 0x003 问题分析 在初始化