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

Laravel 7.30.6报错BindingResolutionException:Target class [admin]不存在,如何解决?

解决Laravel 7.30.6中「Target class [admin] does not exist」错误

错误原因

你在路由组中使用了admin中间件,但在app/Http/Kernel.php的$routeMiddleware配置数组里,并未注册这个中间件,导致Laravel无法找到对应的类,从而抛出绑定解析异常。

解决方案

1. 创建Admin中间件

通过Artisan命令生成中间件文件:

php artisan make:middleware Admin

执行后会在app/Http/Middleware目录下生成Admin.php文件。

2. 编写管理员验证逻辑

打开生成的Admin.php,在handle方法中添加验证用户是否具备管理员权限的逻辑(示例以用户模型的is_admin字段为例,可根据实际需求调整):

<?php

namespace App\Http\Middleware;

use Closure;

class Admin
{
    public function handle($request, Closure $next)
    {
        // 验证用户已登录且是管理员
        if (auth()->check() && auth()->user()->is_admin === 1) {
            return $next($request);
        }

        // 无权限时的跳转逻辑,可按需修改
        return redirect('/')->with('error', '你没有访问该页面的权限');
    }
}

3. 在Kernel.php中注册中间件

打开app/Http/Kernel.php,找到$routeMiddleware数组,添加admin中间件的映射:

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
    'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
    // 添加这一行
    'admin' => \App\Http\Middleware\Admin::class,
];

4. 清理缓存(可选但推荐)

执行以下命令清除路由和配置缓存,确保新配置生效:

php artisan route:clear
php artisan config:clear

内容的提问来源于stack exchange,提问作者Muhammad Manik Uddin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:23:14