You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Adminer中正确配置使用Pretty JSON Column插件

Adminer Pretty JSON Column 插件配置报错解决

错误根因

触发Call to a member function _callParent() on string致命错误,核心是两处配置错误:

  1. 插件实例化传参完全错误:把json_encode()生成的字符串传给了插件构造函数,而这个构造函数不需要传入任何自定义JSON处理逻辑,插件本身已经内置JSON自动美化、格式校验逻辑,传入的字符串覆盖了插件内部存储Adminer核心对象的属性,后续调用类方法时必然报错。
  2. Docker挂载逻辑错误:直接把插件源码文件挂载到plugins-enabled目录,还自行在源码里重复编写require、实例化逻辑,不符合Adminer官方Docker镜像的插件加载规则。

正确配置步骤

1. 整理本地目录结构

在存放docker-compose.yml的同级目录创建plugins文件夹,将下载得到的pretty-json-column.php原始插件源码(不要修改源码内容、不要追加自定义实例化代码)放入该文件夹。

2. 替换Docker Compose配置

用以下配置替换原有docker-compose.yml内容:

version: '3.7'
services:
    adminer:
        image: 'adminer:latest'
        restart: always
        user: root
        ports:
            - '8080:8080'
        volumes:
            - ./plugins:/var/www/html/plugins-enabled
        environment:
            - PUID=0
            - PGID=0
            - 'ADMINER_DESIGN=dracula'
            - 'ADMINER_PLUGINS=dump-json dump-xml dump-zip pretty-json-column'

注意必须把pretty-json-column加到ADMINER_PLUGINS的插件列表中,镜像启动时会自动生成对应插件加载配置。

3. 手动加载场景的配置写法

如果不依赖镜像的自动插件加载能力,需要手动编写插件入口文件,只需要在plugins目录下的对应加载文件中写入如下内容即可,不需要传入任何构造参数:

<?php
return new AdminerPrettyJsonColumn();

不要在配置中写入json_encode($value, JSON_PRETTY_PRINT)这类传参,这部分逻辑插件已经内置实现。

效果验证

重启容器后访问Adminer,进入带有JSON字段的表,直接粘贴测试JSON内容保存,再次查看字段时会自动按缩进格式美化显示,不会再触发致命错误。插件会自动完成JSON格式化、格式校验逻辑,不需要额外传参配置。

内容的提问来源于stack exchange,提问作者user2986242

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:51:21