私は5.0で別のlaravelアプリケーションのミドルウェアクラスを持っています。これは、ユーザーログイン時に呼び出されます。5.2の別のアプリケーションで使用したいクラスです。laravel 5.2ログインするたびにミドルウェアを呼び出す方法は?
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Contracts\Routing\ResponseFactory;
use App\AssignedRoles;
class Admin implements Middleware {
/**
* The Guard implementation.
*
* @var Guard
*/
protected $auth;
/**
* The response factory implementation.
*
* @var ResponseFactory
*/
protected $response;
/**
* Create a new filter instance.
*
* @param Guard $auth
* @param ResponseFactory $response
* @return void
*/
public function __construct(Guard $auth,
ResponseFactory $response)
{
$this->auth = $auth;
$this->response = $response;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($this->auth->check())
{
$admin = 0;
$user_roles = AssignedRoles::join('roles','role_user.role_id','=','roles.id')
->where('user_id', $this->auth->user()->id)->select('roles.is_admin')->get();
foreach($user_roles as $item)
{
if($item->is_admin==1)
{
$admin=1;
}
}
if($admin==0){
return $this->response->redirectTo('/');
}
return $next($request);
}
return $this->response->redirectTo('/');
}
}
は、私はすでにkernel.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,
'admin' => \App\Http\Middleware\Admin::class,
'age' => \App\Http\Middleware\Age::class,
];
は、私はそれがミドルウェアを呼び出すが、まだわかりませんどのように5.0に合図アプリを見つけM」、ここでのルートです:
Route::get('/', '[email protected]');
Route::get('home', '[email protected]');
Route::get('about', '[email protected]');
Route::get('contact', '[email protected]');
Route::pattern('id', '[0-9]+');
Route::get('news/{id}', '[email protected]');
Route::get('video/{id}', '[email protected]');
Route::get('photo/{id}', '[email protected]');
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
if (Request::is('admin/*'))
{
require __DIR__.'/admin_routes.php';
}
ログインするたびにどのように実行できますか?
を試してみてください。 –