Laravel中获取路由参数Route Parameters的五种方法示例


Posted in PHP onSeptember 29, 2017

前言

大家都知道Laravel 获取路由参数的方式有很多,并且有个小坑,现汇总如下,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

假设我们设置了一个路由参数:

/**
* 定义路由参数名称分别为: param1,param2
*/
Route::get('/{param1}/{param2}', 'TestController@index');

现在我们访问 http://test.dev/1/2

在 TestController 中:

/**
* 路由参数获取方法
*
* @param Illuminate\Http\Request $request 依赖注入 Request 实例,放在参数中什么位置都可以自动加载
* @param mixed $arg2 要获取的路由参数
* @param mixed $arg1 要获取的路由参数
*/

public function index(Request $request, $arg2, $arg1)
{

 /**
 * 方法一:按照 URL 中路由参数先后顺序来获取
 * 注意:此种方式有个小坑,获取的值只与顺序有关,与名称无关
 */
 echo $arg2; //结果为 1 ,因为 $arg2 在第一位,获取的是第一个路由参数 param1 的值
 echo $arg1; //结果为 2 ,因为 $arg1 在第二位,获取的是第二个路由参数 param2 的值

 /**
 * 方法二:按照路由参数名称来获取
 * 注意:此处名称是 Route 中定义的参数名,非上面方法中的参数名 
 */
 $request->route('param1');  //结果为 1 ,获取的是第一个路由参数
 $request->route('param2');  //结果为 2 ,获取的是第二个路由参数

 /**
 * 方法三:使用 request() 辅助函数来获取,效果同方法二
 */
 request()->route('param1');  //结果为 1 ,如果不带路由参数名则返回当前的Route对象
 request()->route('param2');  //结果为 2 ,如果不带路由参数名则返回当前的Route对象

 /**
 * 方法四:使用 Route Facade
 */
 \Route::input('param1');  //结果为 1 ,该方法必须带路由参数名
 \Route::input('param2');  //结果为 2 ,该方法必须带路由参数名

 /**
 * 方法五:使用 Illuminate\Http\Request 实例动态属性
 */
 $request->param1; //结果为 1 ,Laravel 5.4+ 可用
 $request->param2; //结果为 2 ,Laravel 5.4+ 可用
  
 // 或者
 request()->param1; //结果为 1 ,Laravel 5.4+ 可用
 request()->param2; //结果为 2 ,Laravel 5.4+ 可用
  
 //或者
 request('param1'); //结果为 1 ,Laravel 5.4+ 可用
 request('param2'); //结果为 2 ,Laravel 5.4+ 可用
  
 /**
 * 注意:Laravel 在处理动态属性的优先级是,先从请求的数据(POST/GET)中查找,没有的话再到路由参数中找。
 * 例如:URL : http://test.dev/1/2?param1=a¶m2=b
 * $request->param1; request()->param1; request('param1'); //结果为 a
 * $request->param2; request()->param2; request('param2'); //结果为 b
 */
}

以上就是 Laravel 获取路由参数的 5 种方法。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP邮件专题
Oct 09 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
深入php处理整数函数的详解
Jun 09 PHP
PHP入门之常量简介和系统常量
May 12 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
php实现简易聊天室应用代码
Sep 23 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
php判断IP地址是否在多个IP段内
Aug 18 PHP
PHP isset empty函数相关面试题及解析
Dec 11 PHP
PHP网页安全认证的实例详解
Sep 28 #PHP
php二维码生成以及下载实现
Sep 28 #PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 #PHP
PHP面向对象多态性实现方法简单示例
Sep 27 #PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 #PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 #PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 #PHP
You might like
具有时效性的php加密解密函数代码
2013/06/19 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
PHP答题类应用接口实例
2015/02/09 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
python使用cPickle模块序列化实例
2014/09/25 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python 统计字数的思路详解
2018/05/08 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
python读取和保存图片5种方法对比
2018/09/12 Python
python实现电子词典
2020/03/03 Python
python实现贪吃蛇双人大战
2020/04/18 Python
python如何调用php文件中的函数详解
2020/12/29 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
联想中国官方商城:Lenovo China
2017/10/18 全球购物
安全生产活动月方案
2014/03/09 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
结婚主持人致辞
2015/07/28 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python