我是laravel的新手,我开始使用Laravel 5.2
我正在创建一个管理面板,因此我创建了一个名为Admin的中间件。但是有一个绑定错误,我不知道如何解决这个问题。
我的routes.php代码是:
Route::get('/', 'HomeController@index');
Route::get('home', 'HomeController@index');
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController'
]);
Route::group(['prefix' => 'admin', 'middleware' => 'auth', 'namespace' => 'Admin'], function(){
Route::pattern('id', '[0-9]+');
Route::get('dashboard', 'DashboardController@index');
});
这是我的Admin.php:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Routing\ResponseFactory;
use App\Models\AssignedRole;
class Admin
{
protected $auth;
protected $response;
protected function __construct(Guard $auth,ResponseFactory $response)
{
$this->auth = $auth;
$this->response = $response;
}
public function handle($request, Closure $next)
{
if($this->auth->check())
{
$admin = 0;
if($this->auth->user()->admin === '1')
{
$admin = 1;
}
if($admin === 0)
{
return $this->response->redirectTo('/');
}
return $next($request);
}
return $this->response->redirectTo('/');
}
}
这是我在Kernel.php文件中的routeMiddleware:
protected $routeMiddleware = array(
'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,
'admin' => \App\Http\Middleware\Admin::class
);
异常消息是:'Illuminate \ Contracts \ Container \ BindingResolutionException',消息'Target [App \ Http \ Middleware \ Admin]不可实例化。在C:\ wamp64 \ www \ neredenal \ vendor \ laravel \ framework \ src \ Illuminate \ Container \ Container.php:752
有什么想法来解决这个异常吗?