laravel中间件的使用
参考:https://laravelacademy.org/post/8739.html
php artisan make:middleware HelloAccess
- 先在/App/Http/Middleware里面看个HelloAccess.php文件
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class HelloAccess
{
public function handle(Request $request,$next){
if(1>2){
echo 'error';
}
return $next($request);
}
}
- 然后到/App/Http/Kernel.php中的$routeMiddleware添加
'helloaccess' => \App\Http\Middleware\HelloAccess::class,
- 最后到routes/web.php里面
Route::group(['middleware'=>['access']],function (){
Route::any('teacher/count/homeworkCount','Teacher\CountController@homeworkCount');
Route::any('teacher/count/studentCount','Teacher\CountController@studentCount');
});
醒悟:1.原来是先走__construct再走中间件,再走指定的方法
2.laravel的__construct是不能用session这个方法的
so,我要这样在中间件中加东西
class THomeWorkController extends Controller
{
public function __construct()
{ // 这个方法里面不可以用session,非要这样用才可以,是个坑
$this->middleware(function ($request, $next) {
$this->userId = User::getUserId($isTeacher = true);
return $next($request);
});
}
}