将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);