【问题标题】:Class Illuminate\Routing\Middleware\Rolemiddleware does not exist类 Illuminate\Routing\Middleware\Rolemiddleware 不存在
【发布时间】:2017-03-05 03:46:36
【问题描述】:

我正在使用 laravel ,当我尝试在路由器中注入中间件时遇到一些错误

我的路由器代码

<?php

Route::get('role',[
    'middleware' => 'Role:editor',
    'uses' => 'TestController@index',
])->middleware('role');

?>

kernal.php

protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'Age' => \App\Http\Middlware\AgeMiddleware::class,
        'Role' => \App\Http\Middlware\RoleMiddleware::class,
    ];

RoleMiddleware.php

<?php

namespace App\Http\Middleware;

use Closure;

class RoleMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next, $role)
    {
        echo "Role: ".$role;
        return $next($request);
    }
}

?>

这是我的 TestController 代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;


class Firstcontroller extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        echo '<br>First Controller';
    }

?>

我收到一个错误:类 Illuminate\Routing\Middleware\Rolemiddleware 不存在。我是 Laravel 新手并使用 Laravel 5.3。你能告诉我为什么它给我一个错误

【问题讨论】:

  • 'Role' => \App\Http\Middlware\RoleMiddleware::class,中间件这个词有拼写错误
  • 您好 user2226181,感谢您的回复,但很抱歉我在编写此问题时在 Stck 流程中犯了这个拼写错误,我的代码有正确的拼写中间件

标签: php laravel


【解决方案1】:

在 kernal.php 中,您在单词 Middlware 中出现拼写错误

改一下

'Age' => \App\Http\Middlware\AgeMiddleware::class,
  'Role' => \App\Http\Middlware\RoleMiddleware::class,

'Age' => \App\Http\Middleware\AgeMiddleware::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,

【讨论】:

  • 嗨 iCoders,感谢您的回复,但很抱歉我在编写此问题时在 Stck 流程中犯了这个拼写错误,我的代码有正确的拼写中间件
  • 谢谢,我明白了,实际上问题出在中间件的路径中 Kernal.php 'Age' => \App\Http\Middleware\AgeMiddleware::class,我用错了路径
  • @user2226181.okay.Thanks
猜你喜欢
  • 2016-08-07
  • 2016-05-28
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 2020-01-23
  • 2020-05-15
  • 2020-05-29
  • 1970-01-01
相关资源
最近更新 更多