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中加session验证)
Aug 22 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
php网站地图生成类示例
Jan 13 PHP
使用PHP破解防盗链图片的一个简单方法
Jun 07 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 PHP
Laravel 框架返回状态拦截代码
Oct 18 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 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/05/18 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
JavaScript中的类继承
2010/11/25 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
AngularJS内置指令
2015/02/04 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python实现的一个简单LRU cache
2014/09/26 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
详解django中使用定时任务的方法
2018/09/27 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
大学生个人实习的自我评价
2014/02/15 职场文书
会计专业导师推荐信
2014/03/08 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
公司离职证明样本
2014/09/13 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书