laravel 笔记
  • Introduction
  • 说明
  • Laravel 基础
    • 安装与配置
    • 目录结构
    • 路由配置
    • MVC 配置
    • 数据库操作
      • DB façade 方式
      • 查询构造器方式
      • Eloquent ORM 方式
      • 数据库迁移
      • 数据填充
    • 请求和响应和重定向
    • Session
    • 中间件
    • 其他
      • Artisan 命令行
  • Laraval 源码分析
    • 请求到响应的生命周期
      • 程序启动准备
      • 请求实例化
      • 处理请求
      • 响应的发送与程序终止
    • 路由
    • 补充知识点
      • 反射机制
      • Closure 类
  • 资料
  • 核心思想
    • 服务容器
    • 服务提供者
    • Facades(门脸模式)
  • 开发笔记
  • Artisan 命令
  • yarn
Powered by GitBook
On this page
  • Laravel 的路由中间件
  • 配置访问路由
  • 控制器
  • 中间件
  • 中间件配置

Was this helpful?

  1. Laravel 基础

中间件

PreviousSessionNext其他

Last updated 5 years ago

Was this helpful?

参考:

Laravel 的路由中间件

配置访问路由

routes/web.php文件中配置,Laravel 带有开箱即用的web和api中间件,包含了可能应用到 Web UI 和 API 路由的通用中间件:

// 宣传页面
Route::any('activity0', ['uses' => 'StudentController@activity0']);
// 互动页面
Route::group(['middleware' => ['activity']], function() {
    Route::any('activity1', ['uses' => 'StudentController@activity1']);
    Route::any('activity2', ['uses' => 'StudentController@activity2']);
});

控制器

文件示例App\Http\Controllers\StudentController.php

<?php

namespace App\Http\Controllers;

class StudentController extends Controller
{
    // 活动的宣传页面
    public function activity0()
    {
        return '活动快要开始啦,敬请期待';
    }

    // 活动的宣传页面
    public function activity1()
    {
        return '活动进行中,谢谢您的参与1';
    }

    // 活动的宣传页面
    public function activity2()
    {
        return '互动进行中,谢谢您的参与2';
    }
}

中间件

文件示例App\Http\Middleware\Activity.php

<?php

namespace App\Http\Middleware;

use Closure;

class Activity
{
    /*
    // 前置
    public function handle($request, Closure $next)
    {

        if (time() < strtotime('2016-06-03')) {
            return redirect('activity0');
        }

        return $next($request);
    }
    */


    public function handle($request, Closure $next)
    {

        $response = $next($request);
        echo ($response);


        // 逻辑

        echo '我是后置操作';


    }
}

中间件配置

文件示例App\Http\Kernel.php,加入一行即可

    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'activity' => \App\Http\Middleware\Activity::class,
    ];
Laravel 的路由中间件