参考: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);
        });
    }
}