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
CodeIgniter php mvc框架 中国网站
May 26 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 PHP
php实现httpclient类示例
Apr 08 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
thinkphp分页实现效果
Oct 13 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 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
把77A收信机改造成收音机
2021/03/02 无线电
PHP实现分页的一个示例
2006/10/09 PHP
PHP 图片水印类代码
2012/08/27 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
jQuery实现日历效果
2020/09/11 jQuery
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
Django实现组合搜索的方法示例
2018/01/23 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
python实现整数的二进制循环移位
2019/03/08 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
python实现打砖块游戏
2020/02/25 Python
Python如何输出警告信息
2020/07/30 Python
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
实习老师离校感言
2014/02/03 职场文书
2014组织生活会方案
2014/05/19 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
2014年公司工作总结
2014/11/22 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis