【发布时间】: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 流程中犯了这个拼写错误,我的代码有正确的拼写中间件