laravel自定义中间件实例
laravel自定义中间件实例
打赏
一、总结
一句话总结:
二、laravel自定义中间件实例
1、中间件位置和代码
legend3/app/Http/Middleware/Home/UploadLessonMiddleware.php
<?php namespace App\Http\Middleware\Home; use App\Models\BaHome\AaUser\AbUserSetting\Get\GetUserSetting; use Closure; use Auth; //上传功能中间件 class UploadLessonMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { //前端的上传功能中间件 //用来判断用户是否有上传课程、上传视频、上传博客的权限 //如果登录成功就进行下一步 //如果没有登录成功就返回到登录页 if(!Auth::guard('user')->check()){ return redirect('/login'); }else{ //如果登录了 $u_id=Auth::guard('user')->user()->id; $u_id=intval($u_id); $user_setting=GetUserSetting::byUID($u_id); //有发布课程的权限 if($user_setting['us_can_publish_lesson']){ //进行下一步操作 return $next($request); }else{ return redirect('/no_upload_lesson_permission'); } } } }
2、注册中间件
legend3/app/Http/Kernel.php
protected $routeMiddleware = [ //fry //后端的登录中间件注册 'admin.auth'=>Middleware\Admin\Admin::class, //前端的登录中间件注册 'home.auth'=>Middleware\Home\User::class, //发布课程权限中间件 'upload_lesson'=>Middleware\Home\UploadLessonMiddleware::class, 省略若干无关代码........... ]
3、使用中间件
class CreateLessonController extends CommonController { public function __construct() { //排除'index'方法,进行中间件的验证 $this->middleware('upload_lesson')->except(['no_upload_lesson_permission']); } 省略若干无关代码........... }
可以写个方法来显示没通过权限验证的消息
//没有上传课程权限的中间件返回显示信息 public function no_upload_lesson_permission(){ $validate_message='你没有权限发布课程、章节、视频!!'; $error_data=['validate_message']; return view('home.ya_common.validate_return_page.validate_return_page',compact($error_data)); }
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2025-01-31:宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2020-09-26 Python库-re(正则表达式)
2020-09-26 Python正则表达式指南
2020-09-26 python字符串前面加上'r'的作用
2020-09-26 MinMaxScaler
2020-09-26 Python正则表多行匹配
2019-09-26 hdjs---laravel 框架使用hdjs 实现多图上传功能
2019-09-26 jQuery.extend 函数使用详解