Laravel5.7框架安装与使用学习笔记图文详解(4)

修改/routes/web.php路由配置,给后台用户路由组添加中间件属性:

//后台用户
Route::group(['prefix' => 'admin/user' , 'middleware' => 'admin.checklog'], function () {
  //用户列表
  Route::get('userlist', 'UserController@userlist');

  //用户添加
  Route::get('useradd', 'UserController@useradd');
});

此时访问用户列表页,会先走中间件判断登录状态,没登录跳转到首页:

(Kernel.php中其他中间件属性:全局中间件$middleware、中间件组$middlewareGroups、中间件执行顺序$middlewarePriority) 

如果不给路由设置中间件属性,也可以在控制器的构造方法里设置中间件,可以指定或排除具体某一个操作,示例如下:

<?php

namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
  public function __construct(){
    //全部操作生效
    $this->middleware('admin.checklog');

    //仅xxx操作生效
    // $this->middleware('admin.checklog')->only('userlist');

    //除xxx操作生效
    // $this->middleware('admin.checklog')->except('useradd');
  }

  public function userlist(){
  	return '后台用户列表页';
  } 

  public function useradd(){
  	return '后台用户添加';
  } 
}

【请求 request】

获得请求,首先需要引入 Illuminate\Http\Request 类

基本使用:

<?php

namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class IndexController extends Controller
{
  public function index(Request $request){
  	$uri = '请求路径:'.$request->path();
  	$url = '请求URL:'.$request->url();
  	$method = '请求方法:'.$request->method();
  	$name = '获取请求参数:'.$request->input('name');
  	$mid = '获取cookie:'.$request->cookie('mid');
    $key = '获取session:'.$request->session()->get('key');
  	$file = '获取上传文件:'.$request->file('photo');
  	dump($uri);
  	dump($url);
  	dump($method);
  	dump($name);
  	dump($mid);
  	dump($file);

  	//验证请求路径
  	//if ($request->is('admin/*')) {
    //}

    //验证请求方法
    //if ($request->isMethod('post')) {
    //}
  } 
}