laravel paginate() 与 makeHidden() 一起使用

模型里使用了关联对象做计算并得到 append 属性,所以默认情况下,对象会自动携带关联对象。主要有两个问题:大部分时候使用模型真的只是想取一个简单的列表即便需要 append 属性,但关联对象本身或者关联对象的关联对象并不需要返回增加的属性默认是取不到的,需要添加到 append 中来来返回。而当增加属性不需要时,可以使用到 makeHidden() 主动隐藏掉。对应的还有 hidden 以及

vsprintf 报错:Too few arguments

$format_str = vsprintf($str, $values);vsprintf 输出格式化的字符串,$str 中会填充 %d、%s 等占位符。当后面的数据部分少于占位符个数时,就会报这个错误。可以将 $str 和 $values 输出出来,对比就能找到错误原因。也可以在函数前面加一个 @ 来忽略这个报错。

Laravel 获取请求头部信息及 JSON 格式数据

使用版本 Laravel 5.2获取头部信息$request->header('authorization')直接使用 $request->header() 获取所有参数,但每个参数值都是数组格式 ['xxx']。获取 JSON 格式数据$request->input()相当于 $data = file_get_content('php://inpu

PHP 错误:openssl_decrypt() expects at most 5 parameters, 7 given

微信支付分使用 apiv3 key 进行解密,报错:openssl_decrypt() expects at most 5 parameters, 7 given。点开函数所在库,是存在 7 个参数的。搜索 openssl_decrypt() 定义,其中更新日志中,说明了 php 7.1.0 添加了 tag 和 aad 参数,即 php 7.1 之后增加了两个参数,php 7.1 以下的版本时不能

Laravel JWT token 过期时长设置

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

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

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

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

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

Laravel 中 bcrypt 助手方法解析

因为发现密码重新生成(密码值不变)时,返回的 hash 值都会变化,而解密却都能够成功,所以对 Laravel 自带的这个获取加密 hash 值的方法突然比较好奇。\vendor\laravel\framework\src\Illuminate\Foundation\helpers.phpif (! function_exists('bcrypt')) { /**

PHP 处理 16 进制数据以及TCP 报文发送工具 sokit 使用

公司的充电宝项目使用物联网技术连接设备,而与设备交互需要用到 TCP (或者 MQTT,性质一样)长连接。PHP 做这种项目大概率都会使用 workerman 框架(可以处理 TCP、Websockt 等请求),而业务框架 thinkphp 似乎也是首选。因为 thinkphp 可以将 wokerman 以扩展库的形式直接安装到框架中使用,过程非常简便。thinkphp 会在 config 下生成