zoukankan      html  css  js  c++  java
  • larave 控制器中获取路由参数

    Laravel中获取路由参数Route Parameters的五种方法示例

    作者:SeekerLiu

    这篇文章主要给大家介绍了关于Laravel中获取路由参数Route Parameters的五种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

    前言

    大家都知道Laravel 获取路由参数的方式有很多,并且有个小坑,现汇总如下,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

    假设我们设置了一个路由参数:

    /**
    * 定义路由参数名称分别为: param1,param2
    */
    Route::get('/{param1}/{param2}', 'TestController@index');

    现在我们访问 http://test.dev/1/2

    在 TestController 中:

    /**
    * 路由参数获取方法
    *
    * @param IlluminateHttpRequest $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 ,该方法必须带路由参数名
    
     /**
     * 方法五:使用 IlluminateHttpRequest 实例动态属性
     */
     $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 种方法。

  • 相关阅读:
    一个优秀测试的自我修养
    二.自动化接口测试---用例设计思路、模版
    关于文件读写的一些笔记
    模块导入---如何在一个文件中导入其它模块,来调用它的变量、函数等,以节省代码量
    变量以及作用域----(局部变量、全部变量...)
    python连接mysql数据库
    python修改txt文件内容
    使用PyQt4写界面后台程序方法总结
    unresolved import 解决办法
    怎样使用pyinstaller打包
  • 原文地址:https://www.cnblogs.com/handongyu/p/8422610.html
Copyright © 2011-2022 走看看