'integer', 'seq' => 'integer', 'file_size' => 'integer', 'play_length' => 'integer', ]; /** JSON 反序列化 to_list 访问器,便于业务层直接拿数组 */ public function getToListAttr($value): array { if ($value === null || $value === '') { return []; } if (is_array($value)) { return $value; } $decoded = json_decode((string) $value, true); return is_array($decoded) ? $decoded : []; } public function setToListAttr($value): string { if (is_string($value)) { return $value; } return json_encode($value ?? [], JSON_UNESCAPED_UNICODE); } }