当前位置: 首页 > 知识库问答 >
问题:

在Laravel中使用命名空间定义API路由时,目标类[Controller]不存在

何涵忍
2023-03-14

我正在使用Laravel v8,并尝试创建一个用于管理员身份验证的API路由,如下所示:

路线/api.php

Route::prefix('/admin')->name('admin.')->namespace('Admin')->group(function(){
    Route::middleware('auth:admin-api')->group( function () {
        Route::resource('tasks', TaskController::class);
    });
    Route::namespace('Auth')->group(function(){
        //Login Routes
        Route::post('/login','LoginController@login'); 
        Route::post('/register','LoginController@register'); 
    });
});

当我试图访问http://laravel.local/api/admin/login我遇到以下错误:

Illumb\Contracts\Container\BindingResolutionException:目标类[Admin\Auth\LoginController]不存在。在文件/Users/John/Sites/laravel/htdocs/vendor/laravel/framework/src/light/Container/Container中。php在线875

我已经在app/Http/Controllers/API/Admin/Auth/LoginController中创建了控制器文件。php

namespace App\Http\Controllers\API\Admin\Auth;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\API\BaseController as BaseController;
use App\Models\Admin;
use Validator;

   
class LoginController extends BaseController
{

    public function login(Request $request)
    {
      ....
    }
}

共有2个答案

殷宾白
2023-03-14

你应该更新你的代码

use App\Http\Controllers\API\Admin\Auth\LoginController;

Route::prefix('/admin')->name('admin.')->group(function(){
    Route::middleware('auth:admin-api')->group( function () {
        Route::resource('tasks', TaskController::class);
    });
 
    Route::post('/login',  [LoginController::class, 'login']); 
    Route::post('/register',  [LoginController::class, 'register']); 
});
甘永春
2023-03-14

您在App\Http\Controllers\API\Admin\Auth命名空间中创建了LoginController,但在API路由文件中添加路由登录时,不要使用API命名空间。

 类似资料:
  • 关于Laravel 8. x路由的问题 现在我在网络上添加这样的行。php文件: 然后只是工作等。 在乞讨时,仅仅使用而不是所有的行一个接一个地x次是错误的吗? 谢谢

  • 我在xslt中需要这个,但是xmlns:s=“{$service-uri}”没有提取: 如何提取名称空间定义中的service-uri变量?扎梅克

  • 但是,如果实用工具类是从Qt类派生的,我会出现链接错误。我认为问题出在Q_OBJECT宏上,如果我不添加它,我就不会得到错误。但是在任何Qt派生类中都必须/建议使用Q_OBJECT宏。 我怎样才能避免这个ISUE?有没有其他方法来拥有一个具有文件作用域的实用程序类? 用于显示错误的简单示例:CMyClass类使用从QWidget派生的实用工具类(名为CUtility)。 错误有: LNK2001:

  • 构建MVC3解决方案进展顺利,但在浏览器中出现错误: 编译器错误消息:CS0234:命名空间“系统”中不存在类型或命名空间名称“Html”。网状物Mvc'(是否缺少部件引用?) 我已经用为解决方案安装了数据包,并为所有项目进行了设置。MVC3是否包含库System.网页。mvc.Ajax,等?为什么我得到了错误? 在References文件夹中,我有一个系统。网状物Mvc , 网状物配置 MSDN

  • 我有这个错误时,移动到 地方的错误:Symfony\Component\Debug\Exception\fatalthrowable错误:致命错误:找不到类“\App\User” 供应商/laravel/framework/src/Illuminate/Auth/EloquentUserProvider。菲律宾比索:126

  • 上面的代码给了我以下错误: 错误CS0234:命名空间“System.Runtime.InteropServices”中不存在类型或命名空间名称“CustomMarshalers”(是否缺少程序集引用?)