zoukankan      html  css  js  c++  java
  • laravel中间件

    1.控制器方法中自定义

    $this->middleware(function ($request, $next) {
        return $next($request);
    });

    2.控制器方法中调用

    注册中间件
    lumen:
    $app->routeMiddleware([
        'auth' => AppHttpMiddlewareAuthenticate::class,
        'UserCheck' => AppHttpMiddlewareUserCheck::class,
    ]);

    laravel:appHttpKernel.php

     protected $routeMiddleware = [
            'auth' => AppHttpMiddlewareAuthenticate::class,
            'SensitiveFilter' => AppHttpMiddlewareUserCheck::class
        ];
    
        /**
         * The priority-sorted list of middleware.
         *
         * This forces non-global middleware to always be in the given order.
         *
         * @var array
         */
        protected $middlewarePriority = [
            AppHttpMiddlewareAuthenticate::class,
            AppHttpMiddlewareUserCheck::class,
        ];
    $this->middleware('UserCheck');

    UserCheck中间件:appHttpMiddlewareUserCheck.php

    <?php
    namespace AppHttpMiddleware;
    
    use Closure;
    
    class UserCheck
    {
        /**
         * Handle an incoming request.
         *
         * @param  IlluminateHttpRequest  $request
         * @param  Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            $path      = $request->route();
            $actionArr = getAction($path);
            $staffInfo = getLoginInfo();
    
            if(empty($staffInfo['info']))
            {
                return response()->json(['code' => $actionArr['action'].':fail','errMsg' => '用户可能已经被删除']);
            }
    
            if(!empty($staffInfo['info']['tmp']))
            {
                //锁定状态的用户信息不可以提交修改
                $lock = $staffInfo['info']['tmp']['lock'];
                if($request->isMethod('post'))
                {
                    if($lock == 1)
                    {
                        return response()->json(['code' => $actionArr['action'].':fail','errMsg' => '用户信息已经锁定,请等待人事审核']);
                    }
                }
            }
    
            $request->attributes->add(['staffInfo'=>$staffInfo]);
    
            return $next($request);
        }
    }
  • 相关阅读:
    一个票据打印实例
    页面刷新,保持页面位置
    HTML页面跳转
    DataTable帮助类
    使用cookie保存用户名状态
    DataTable实现数据统计
    Coolite Toolkit学习笔记九:表单布局控件FormLayout与FromPanel
    QQ趣事
    看到几篇关于Ajax介绍的文章,转贴过来
    积极的生活着
  • 原文地址:https://www.cnblogs.com/zuikeol/p/12993150.html
Copyright © 2011-2022 走看看