中间件

参考:Laravel 的路由中间件

Laravel 的路由中间件

配置访问路由

routes/web.php文件中配置,Laravel 带有开箱即用的webapi中间件,包含了可能应用到 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,
    ];

Last updated

Was this helpful?