Laravel JWT token 过期时长设置

laravel 5.2 版本修改 JWT 配置文件:config/jwt.php... 'ttl' => env('JWT_TTL', 60), ...单位为分钟,默认为 1 小时。设置为 null 后可以保持 token 永不过期。设置方法首先要确定 .env 文件里是否定义了常量 JWT_TTL,若未定义可以直接修改,比如 60*24 ,24 小时有效;若定义了,则修改 .env 里面的

gitlab merge request 取消 [默认删除分支] 选项

在线上提交 merge 请求时,新版本 gitlab 出现了一个默认删除源分支的选项:Merge optionsDelete source branch when merge request is accepted.最要名的是,它是默认的,每次提交新的 merge 请求,都会自动勾选。雨天路滑,保不准哪次会忽略直接提交了。自己也出现过一次删除了当前分支,通过本地重新 push 才重新找回。取消这个

MySQL 子查询多个字段关联到结果集

正常情况下可以在 select 内嵌套子查询作为结果集的字段,示例如下:select id,name,(SELECT COUNT(id) FROM records WHERE user_id = users.id ) AS box_count FROM users where user_id = 9527;但如果需要子查询的多个字段返回,此时放在 select 是不行的:SELECT SUM(m

MySQL 查询结果由列转成行数据

行内字段拼接组合可以用到 CONCAT(),如果需要指定分隔符可以使用 CONCAT_WS(',', xx, xx..),但如何将多行数据提取到单行结果中呢?明确需求是,递归查询所属下级的id,最终用表中的 id 拼接成字串。这当然可以放在 php 代码里使用 implode 函数去实现,但这次需要通过 sql 做一个临时的查询。因为所属下级最大层级为 3 级,所以可以通过 sql 的 union

Laravel 项目优先使用到的第三方库

Intervention Image - 图片处理与操作库为什么不用 PHP 自带的 GD 图片处理扩展库?GD 库本身提供了大部分图片处理的函数,但使用前都会将其封装一个类,来处理业务方面的需求。网上有很多这样的 GD 库封装案例,但在切换框架之后,对于使用自定义的库引入和使用适应方面需要花费时间,且这样封装本身也缺少维护,容易造成代码不兼容的问题。Intervention Image 是在 G

centos 服务器升级 PHP 版本到 8,以及升级过程中 php-fpm、nginx 出现的问题

准备搭建一个 Laravel8 项目环境,对应 PHP 8。服务器环境上 PHP 7.3.3,最理想的情况是像宝塔 panel 一样,可以自由切换 PHP 版本,甚至可以对某个项目使用指定版本的 php。这个想法在耗费了几个小时的尝试后被放弃了,而此时,环境里 PHP 的展现形式为 php80。因为与当前环境的兼容性问题,导致 php80-php-zip 安装不了,执行 php80 -v 一直有警

项目迁移维护注意事项 - 对 composer 指令的重新认识

项目维护阶段与前期的开发阶段追求的点完全不同。开发阶段是开始迭代版本的时期,新功能开发、测试、整体测试、再开发、在测试...而维护阶段只关心一个字 - “稳”,有种“无为而治”的感觉。新项目上线,需要 git pull 代码,之后使用 composer 安装第三方库。需要强调的是,composer 指令中 composer install 才是真正的安装, composer update 是更新现

ubuntu 权限修改及 root 用户无权限修改文件解决

新版的云服务器上,ubuntu 系统默认登录用户就是 ubuntu。然后在 pull 代码和 composer 下载第三方库的时候,就会失败。需要注意的是,在 ubuntu 用户下创建的目录,下载的文件也可能属于 root 用户组。这时候需要修改文件或文件夹的所属:chown ubuntu.ubuntu www_folder # 遍历所有文件 chown -R ubuntu.ubuntu www_

php fputcsv 输出 csv 文件中文乱码问题解决

以下为使用的 csv 格式输出代码: set_time_limit(0); header('Content-Language: zh'); header('Content-Type: application/vnd.ms-execl; charset=utf-8'); header('Content-Disposition: attachment;filename=&