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程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
php防止站外远程提交表单的方法
Oct 20 PHP
PHP中ini_set与ini_get用法实例
Nov 04 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
ThinkPHP安装和设置
Jul 27 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
yii插入数据库防并发的简单代码
May 27 PHP
PHP静态延迟绑定和普通静态效率的对比
Oct 20 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
浅析vue数据绑定
2017/01/17 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
简单实现python进度条脚本
2017/12/18 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
python中partial()基础用法说明
2018/12/30 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
Python线程threading模块用法详解
2020/02/26 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
谈谈python垃圾回收机制
2020/09/27 Python
大学学习委员竞选稿
2015/11/20 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
Python提取PDF指定内容并生成新文件
2021/06/09 Python
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS