3分钟短文 | Laravel 灵活地获取当前请求的路由地址
时间:2022-07-23
本文章向大家介绍3分钟短文 | Laravel 灵活地获取当前请求的路由地址,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
引言
Laravel程序上下文内,我们需要动态地获取当前的路由地址,应该怎么写呢?本文就通过从 Laravel 4 到 5 及以上版本的实现方法,带大家重温这一知识点。
学习时间
在 Laravel 4 中你可以使用系统提供的 Route 对象,直接访问其方法实现:
Route::currentRouteName();
虽然laravel做了很多努力向下兼容,但是随着PHP的版本升级, 以及框架的改良,实现同一功能的方法也越来越灵活。
首先我们仍然可以通过 Route 对象的方法访问,代码写起来像下面这样:
Route::getCurrentRoute()->getPath();
因为Route对象属于请求阶段,而框架将其关联到了 Request 对象上,所以也可以下面这样链式调用:
Request::route()->getName();
在 Laravel 5.1 内这样写:
use IlluminateSupportFacadesRoute;$currentPath= Route::getFacadeRoot()->current()->uri();
Laravel 5.2 使用门面实现:
use IlluminateSupportFacadesRoute;
Route::currentRouteName();
当然了,既然能获取到路由地址,获取方法名自然也不在话下。代码如下:
Route::getCurrentRoute()->getActionName();
如果要获取整个路由包括协议,域名,路由,请求参数,锚点这些信息,可以返回 path,
// https://example/foo/bar$uri = $request->path();
如果仅仅是 uri 的字符串,则使用
$url = $request->url();
如果要筛选特定字符串匹配的路由地址,可以使用 is 方法进行匹配验证:
if ($request->is('admin/*')) { }
星号是通配符,返回所有匹配项。
Laravel 5.3 以后的框架,获取方法统一下来了,比如下面这样:
$route = Route::current();$name = Route::currentRouteName();$action = Route::currentRouteAction();
写在最后
本文通过多个版本,多个方法的比对,演示了在程序内获取当前请求的路由地址,资源地址,方法名等等的方式, 在路由分配,权限控制中可以灵活使用。Happy coding :-)
- 被解放的姜戈04 各取所需
- PLT:说说Evaluation strategy
- 被解放的姜戈06 假作真时
- idea 创建的maven+spring+mybatis项目整合 报错无法创建bean
- 代数几何:点,线,抛物线,圆,球,弧度和角度
- 被解放的姜戈05 黑面管家
- 用数据来告诉你2018年的未来趋势
- JavaWeb(三)JSP之3个指令、6个动作、9个内置对象和4大作用域
- 被解放的姜戈03 所谓伊人
- JS魔法堂: Native Promise Only源码剖析
- JavaWeb(三)JSP概述
- 人工智能拥有意识,仅是一个时间问题而已
- sqlserver 配置c3p0 连接池
- spring mvc 返回图片的请求
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 可能是Asp.net Core On host、 docker、kubernetes(K8s) 配置读取的最佳实践
- Flutter Widgets 之 AnimatedContainer
- Flutter Widgets 之 Opacity 和AnimatedOpacity
- 聊聊常见的服务(接口)认证授权
- Flutter Widgets 之 FutureBuilder
- [Hei-Ocelot-Gateway ].Net Core Api网关Ocelot的开箱即用版本
- Flutter Widgets 之 InkWell 和 Ink
- Flutter Widgets 之 BottomNavigationBar
- Flutter Widgets 之 PageView
- 笔试题:代码如何实现“百钱买百鸡”?
- Flutter Widgets 之 Dialog 对话框
- 全网最详细的一篇Flutter 尺寸限制类容器总结
- 一篇带你看懂Flutter叠加组件Stack
- Flutter 拖拽排序组件 ReorderableListView
- 女神节 | 程序员如何低调而又不失逼格