Upgrade ThinkPHP8 error "Undefined Array Key 0" 2 months ago

将thinkphp6升级到8后,在更新文章的时候报了这个错

Undefined array key 0

最后发现是因为我使用了json字段,在tp6的时候我不知道为什么把这个设置给注释掉了也正常

// 设置json类型字段
protected $json = ['info'];
 
// 设置JSON数据返回数组
protected $jsonAssoc = true;

当时设置完的时候没有把json数据返回数组这个加上,还报了个错

json_decode(): Argument #1 ($json) must be of type string, stdClass given

返回的是对象,之前都是返回字符串自己用json_decode转成数组的。

当然可以不设置返回数组,自己手动转换一下

// 方法1: 类型强制转换
$array = (array)$std;
 
// 方法2: 使用json_encode和json_decode
$array = json_decode(json_encode($std), true);

©2024 Acyc's Blog. All rights reserved.