pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何設置 Laravel 中間件的執行順序?

How to set the Laravel middleware order of execution?(如何設置 Laravel 中間件的執行順序?)
本文介紹了如何設置 Laravel 中間件的執行順序?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

Laravel 5 文檔 描述了兩種分配中間件的方法:

  1. 將中間件分配給控制器的路由.
  2. 在控制器的構造函數中指定中間件.

然而,我意識到在控制器__construct() 函數中編寫的任何代碼都會在中間件之前運行,即使中間件是在控制器的 __construct 函數的第一行聲明.

However, I realised that any code written in the controllers __construct() function will run before the Middleware, even if the Middleware is declared on the first line of the controller's __construct function.

我在 Laravel github 存儲庫中找到了一個關于類似問題的錯誤報告.然而,一位合作者結束了這個問題,指出這是預期的行為.".

I found a bug report for a similar issue in the Laravel github repository. However a collaborator closed the issue stating "This is the expected behaviour.".

我認為 middleware 應該是應用程序之外的層",而 __construct 函數是應用程序的一部分.

I am thinking that middleware should be "layers" outside the application, while the __construct function is part of the application.

為什么 __construct 函數在中間件之前執行(假設它是在中間件運行之前聲明的)?為什么這是預期的?

Why is the __construct function executed before the middleware (given it is declared before middleware runs)? and why this is expected?

推薦答案

應用程序邏輯駐留在控制器的方法中.所以基本上應用程序存在于控制器的方法中,而不是整個控制器本身.

The application logic resides in the controller's methods. So basically application lives in the controller's methods, not in the whole controller itself.

中間件在請求進入相應的控制器方法之前運行.因此,這始終在實際應用程序之外.除非所有中間件都通過請求,否則不會執行任何控制器方法.

Middleware runs BEFORE the request enters the respective controller method. And thus, this is always OUTSIDE the real application. No controller method is executed unless all the Middlewares are passing the request.

您放入控制器構造函數中的 $this->middleware("MyMiddleware"); 語句,注冊 MyMiddleware 以在執行之前進行檢查請求進入應用程序.

The $this->middleware("MyMiddleware"); statements that you put in the controller constructor, REGISTERS the MyMiddleware for checking before the request enters the application.

如果你看到一個中間件的代碼并且如果請求通過,則我們使用 $next($request); 語句將其發送到下一個中??間件.這允許為單個請求執行多個中間件.現在,如果 Laravel 直接在 $this->middleware(...); 語句處運行中間件,Laravel 可能無法知道接下來應該檢查哪個中間件.

If you see the code of a middleware and if the request is passing, then we send it to the next middleware using the $next($request); statement. This allows multiple middlewares to be executed for a single request. Now, if Laravel run the middleware right at the $this->middleware(...); statement, Laravel would probably not be able to know which middleware should be next checked.

所以,Laravel 通過先注冊所有中間件,然后將請求一個一個地傳遞給所有中間件來解決這個問題.

So, Laravel solves this by registering all the middlewares first, then passing the request through all the middlewares one by one.

這篇關于如何設置 Laravel 中間件的執行順序?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Magento products by categories(按類別劃分的 Magento 產品)
Resource interpreted as image but transferred with MIME type text/html - Magento(資源被解釋為圖像但使用 MIME 類型 text/html 傳輸 - Magento)
Is there an event for customer account registration in Magento?(Magento 中是否有客戶帳戶注冊事件?)
Magento addFieldToFilter: Two fields, match as OR, not AND(Magento addFieldToFilter:兩個字段,匹配為 OR,而不是 AND)
quot;Error 404 Not Foundquot; in Magento Admin Login Page(“未找到錯誤 404在 Magento 管理員登錄頁面)
Get Order Increment Id in Magento(在 Magento 中獲取訂單增量 ID)
主站蜘蛛池模板: 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 江西高职单独招生-江西单招考试-江西高职单招网 | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | 济南菜鸟驿站广告|青岛快递车车体|社区媒体-抖音|墙体广告-山东揽胜广告传媒有限公司 | 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 佛山市德信昌电子有限公司| LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 翅片管散热器价格_钢制暖气片报价_钢制板式散热器厂家「河北冀春暖气片有限公司」 | 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 电车线(用于供电给电车的输电线路)-百科 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 | 合肥制氮机_合肥空压机厂家_安徽真空泵-凯圣精机 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 间甲酚,间甲酚厂家-山东祥东新材料| 安徽千住锡膏_安徽阿尔法锡膏锡条_安徽唯特偶锡膏_卡夫特胶水-芜湖荣亮电子科技有限公司 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 压力变送器-上海武锐自动化设备有限公司 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 板材品牌-中国胶合板行业十大品牌-环保板材-上海声达板材 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 法兰螺母 - 不锈钢螺母制造厂家 - 万千紧固件--螺母街 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 |