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

Laravel调用Omnipay YooKassa提示Gateway类未找到报错

Omnipay YooKassa 类不存在问题排查方案

首先明确核心前提:vendor目录是Composer全权管理的依赖目录,手动往里面新增文件/目录不会被Composer的自动加载机制识别,所有第三方依赖必须通过Composer安装,不要手动修改vendor下的内容。

按以下步骤逐一排查修复:

  • 清理无效手动文件
    直接删除你手动创建的vendor/omnipay/yookassa目录,手动放在vendor里的内容不仅无法被自动加载,后续执行Composer更新操作时还会被直接覆盖,没有实际作用。
  • 修正composer.json依赖配置
    你当前的依赖配置存在两个明显问题:
    1. 不存在omnipay/yookassa这个官方扩展包,你写的"omnipay/yookassa": "*"属于无效依赖,Composer无法拉取对应代码,也不会生成对应的类加载映射
    2. 你同时安装了两个不同作者维护的YooKassa/YandexKassa Omnipay扩展,两个扩展的命名空间、网关调用名完全不同,容易产生冲突
      如果你要调用的是\Omnipay\YooKassa\Gateway类,只需要保留"igor-tv/omnipay-yookassa": "^4.0"和官方SDK依赖"yoomoney/yookassa-sdk-php": "^2.4"即可,删掉无效的"omnipay/yookassa": "*"配置,其他重复的Kassa类扩展可以按需移除。
  • 重新安装依赖并刷新自动加载
    在项目根目录依次执行以下命令,清理无效依赖、安装正确的包并强制重建类加载映射:
    composer remove omnipay/yookassa
    composer update igor-tv/omnipay-yookassa
    composer dump-autoload -o
    
  • 验证类加载状态
    执行完上述操作后,先运行以下代码验证类是否可以被正常识别:
    var_dump(class_exists(\Omnipay\YooKassa\Gateway::class));
    
    返回结果为bool(true)就说明类加载正常,此时再执行$gateway = Omnipay::create('YooKassa');就不会触发类找不到的报错。

补充排查点:如果上述操作完成后依然报错,执行Laravel缓存清理命令即可,缓存的服务提供者、类加载映射会导致新安装的类无法被识别:

php artisan config:clear
php artisan cache:clear

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:30:56