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

调用Opis\JsonSchema\Schema::fromJsonString()报未定义方法错误如何解决?

Opis JsonSchema 报错排查

故障原因

  • 核心问题是Opis JsonSchema版本API不兼容:Schema::fromJsonString() 仅在1.x版本中提供,2.0及以上版本重构了校验逻辑,直接移除了该静态方法,所以会抛出未定义方法错误。
  • 你可以先执行命令查看当前安装的版本:
    composer show opis/json-schema
    如果返回的版本号≥2.0,就可以确定是版本变更导致的问题。

修复方案

方案1:兼容现有代码,降级到1.x版本

执行composer命令指定版本安装即可:
composer require opis/json-schema:^1.0
安装完成后原有代码无需修改即可正常运行。

方案2:使用2.x版本新API,修改现有代码

2.x版本不再需要提前调用Schema类的方法加载schema,直接传递json_decode后的schema对象给校验器即可,修改后的代码示例:

$data1 = json_decode($data);
// 直接解析schema为对象即可,不需要调用Schema类的方法
$schema = json_decode(file_get_contents('JSONSchema_CC.json'));
$validator = new \Opis\JsonSchema\Validator();
/** @var \Opis\JsonSchema\ValidationResult $result */
$result = $validator->validate($data1, $schema);

// 校验结果处理逻辑不变
if ($result->isValid()) {
    // 校验通过
} else {
    $error = $result->error();
    // 处理错误
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 19:15:02