laravel在控制器controller中定义中间件的方法,其实很简单,这里冗余记录一下吧
<?php
namespace App\Http\Controllers\Customer;
use App\Http\Controllers\Controller;
class CommonController extends Controller
{
public $adminData;
public function __construct()
{
//直接调用基础控制器中的middleware方法,参数是一个闭包函数
$this->middleware(function ($request, $next) {
$this->adminData = $request->session()->get('adminData');
if (!$request->session()->has('adminData')) {
return redirect('login.jay');
}
return $next($request);
});
}
}但是,在控制器的构造方法中指定中间件会更方便。使用控制器构造函数中的 middleware 方法, 你可以很容易地将中间件分配给控制器的行为。你甚至可以约束中间件只对控制器类中的某些特定方法生效:
class UserController extends Controller
{
/*
Instantiate a new controller instance.
@return void
/
public function __construct()
{
$this->middleware('auth');
$this->middleware('log')->only('index');
$this->middleware('subscribed')->except('store');
}
}