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 相关文章推荐
DedeCms模板安装/制作概述
Mar 11 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
解析htaccess伪静态的规则
Jun 18 PHP
php旋转图片90度的方法
Nov 07 PHP
php自定义session示例分享
Apr 22 PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP+MySql实现一个简单的留言板
Jul 19 PHP
PHP isset()及empty()用法区别详解
Aug 29 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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
PHP clearstatcache()函数详解
2010/03/02 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
js 上传图片预览问题
2010/12/06 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
Python中基本的日期时间处理的学习教程
2015/10/16 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
python中强大的format函数实例详解
2018/12/05 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
Python实现名片管理系统
2020/02/14 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
python网络编程之五子棋游戏
2020/05/14 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
美国单身专业人士在线约会网站:EliteSingles
2019/03/19 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
委托协议书范本
2014/04/22 职场文书
业务内勤岗位职责
2015/04/13 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python