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);
        });
    }
}
posted @ 2019-04-26 14:40  蜗牛使劲冲  阅读(2)  评论(0编辑  收藏  举报  来源