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 curl 并发最佳实践代码分享
Sep 05 PHP
php使用正则过滤js脚本代码实例
May 10 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
PHP中的session安全吗?
Jan 22 PHP
Yii2中Restful API原理实例分析
Jul 25 PHP
Zend Framework处理Json数据方法详解
Dec 09 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 PHP
如何使用php生成zip压缩包
Apr 21 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 编程安全性小结
2010/01/08 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
一个cssQuery对象 javascript脚本实现代码
2009/07/21 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
Python中交换两个元素的实现方法
2018/06/29 Python
python多线程分块读取文件
2019/08/29 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
成品仓管员岗位职责
2013/12/11 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
2014年高考决心书
2014/03/11 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
2016年校长新年寄语
2015/08/17 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
升职自荐书
2019/05/09 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python