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

使用Fetch API时出现Laravel控制器不存在错误

问题描述
  • 路由配置:
Route::get('/biller-info','MyDomain\Http\Controllers\BillPaymentController@getBillerInfo');
  • 抛出异常:Target class [Mydomain\Http\Controllers\BillPaymentController] does not exist。
  • 文件路径:api > packages > mydomain-shop > src > Http > Controllers > BillPaymentController.php
  • 控制器代码:
<?php

namespace MyDomain\Http\Controllers;

use Exception;
use Illuminate\Http\Request;
use MyDomain\Enums\Permission;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use MyDomain\Exceptions\MyDomainException;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Http;


class BillPaymentController extends CoreController
{
    public function getBillerInfo()
    {
        $response = Http::get('https://reqres.in/api/products/3');
        dd($response->collect());
    }
}
解决步骤

1. 统一命名空间大小写

异常提示的命名空间是Mydomain(首字母小写),但控制器和路由中用的是MyDomain(首字母大写)。Laravel对命名空间大小写敏感,必须保证以下三处完全一致:

  • 控制器文件中的namespace MyDomain\Http\Controllers;
  • 路由中的MyDomain\Http\Controllers\BillPaymentController@getBillerInfo
  • composer自动加载配置中的命名空间映射

2. 配置并更新composer自动加载

在项目根目录的composer.json里,检查autoload区块是否正确映射了包的命名空间:

"autoload": {
    "psr-4": {
        "MyDomain\\": "api/packages/mydomain-shop/src/"
    }
}

配置完成后执行命令更新自动加载规则:

composer dump-autoload

3. 验证路径与命名空间对应关系

当前控制器文件路径api/packages/mydomain-shop/src/Http/Controllers/BillPaymentController.php,对应命名空间MyDomain\Http\Controllers是正确的——src目录映射根命名空间MyDomain\,子目录Http/Controllers对应命名空间的子层级。

4. 确认路由文件位置匹配访问地址

如果是API路由,需确保这条路由定义在routes/api.php中。若放在web.php,访问地址无需加/api前缀;若在api.php,访问地址应为127.0.0.1/api/biller-info,需和实际访问路径对应。

5. 检查父类CoreController的存在性

控制器继承了CoreController,需确保该文件存在于api/packages/mydomain-shop/src/Http/Controllers/CoreController.php,且命名空间同样为MyDomain\Http\Controllers。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:45:42