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 相关文章推荐
一个简单计数器的源代码
Oct 09 PHP
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
destoon实现资讯信息前面调用它所属分类的方法
Jul 15 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
PHP的PDO操作简单示例
Mar 30 PHP
PHP-FPM实现性能优化
Mar 31 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 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 的 __FILE__ 常量
2007/01/15 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
用pycharm开发django项目示例代码
2018/10/24 Python
python nmap实现端口扫描器教程
2020/05/28 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
购买大码女装:Lane Bryant
2016/09/07 全球购物
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
选秀节目策划方案
2014/06/06 职场文书
社区志愿者活动总结
2014/06/26 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js