首页 > 其他 > 详细

Laravel中间件

时间:2017-02-11 17:58:03      阅读:150      评论:0      收藏:0      [点我收藏+]

先谈一谈中间件的使用场景,比如路由转到一张页面,我们需要记录用户的cookie,或者检测用户的访问权限,这些操作如果全写在控制器里是不合适的,因为随着业务的扩充,控制器里的业务逻辑会越来越臃肿,难以维护,所以,不同的操作,我们分别写在各自的中间件里。我们使用artisan命令行来创建一个中间件。

php artisan make:middleware MyMiddleware

中间件的php文件都放在了目录\app\Http\Middleware下,大家应该注意到,中间件Middleware和控制器Controller文件夹都在Http文件夹下。

<?php

namespace App\Http\Middleware;

use Closure;

class MyMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return $next($request);
    }
}

这里我们只改动handle函数来举例中间件的使用

public function handle($request, Closure $next)
{
        echo ‘MyMiddleware is running!‘;
        return $next($request);
}

中间件不注册是不能使用的,注册方式有多种。

第一种,Kernel.php中注册

protected $middleware = [
      \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
      \App\Http\Middleware\MyMiddleware::class,
];

然后直接在控制器里写

class MyController extends Controller
{
    public function index()
    {
        $this->middleware(‘MyMiddleware‘);
        
        return View(‘welcome‘);
    }
    public function hello()
    {
        
        //$articles = DB::select(‘select * from posts‘);
        //$articles=MyModel::all();
        //$articles=MyModel::where(‘id‘,‘<‘,5)->get();
        $articles=MyModel::find(1)->get();
        
        return View(‘myview‘,[‘d1‘=>$articles]);
    }
}

 

 

  

  

  

Laravel中间件

原文:http://www.cnblogs.com/sweng/p/6389408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!