美文网首页收藏
thinkphp5.0 路由传参和路由参数获取

thinkphp5.0 路由传参和路由参数获取

作者: 暴躁程序员 | 来源:发表于2023-01-30 10:40 被阅读0次

一、路由定义

在路由配置文件router.php中

use think\Route;
// 增删改查路由
Route::rule('login','api/login/getInfo','GET',['https' => false]); // 定义GET请求路由规则
Route::rule('login','api/login/postInfo','POST',['https' => false]); // 定义POST请求路由规则
Route::rule('login','api/login/putInfo','PUT',['https' => false]);  // 定义PUT请求路由规则
Route::rule('login','api/login/deleteInfo','DELETE',['https' => false]); // 定义DELETE请求路由规则
//Route::rule('login','api/login/Info','GET|POST',['https' => false]);  // 定义GET和POST请求路由规则
//Route::rule('login','api/login/allInfo','*',['https' => false]); // 所有请求都支持的路由规则

// 增删改查路由 - 简化
Route::get('login','api/login/getInfo',['https' => false]); // 定义GET请求路由规则
Route::post('login/:id','api/login/postInfo',['https' => false]); // 定义POST请求路由规则
Route::put('login','api/login/putInfo',['https' => false]);  // 定义PUT请求路由规则
Route::delete('login','api/login/deleteInfo',['https' => false]); // 定义DELETE请求路由规则
//Route::any('login','api/login/allInfo',['https' => false]); // 所有请求都支持的路由规则

二、路由参数传递的三种方式(以post请求为例)

1. 在URL后通过 /value 的方式传递参数

  • 在路由配置文件router.php中定义参数名
Route::post('login/:id1/:id2','api/login/postInfo',['https' => false]);
  • 前端在URL中拼接参数
http://abc.com/login/100/200

2. 在URL后通过 ?key=value 的方式传递参数

  • 在路由配置文件router.php中
Route::post('login','api/login/postInfo',['https' => false]);
  • 前端在URL中拼接参数
http://abc.com/login?id1=100&id2=200

3. 通过post的方式传递参数

  • 在路由配置文件router.php中
Route::post('login','api/login/postInfo',['https' => false]);
  • 前端以post的方式传递参数
http://abc.com/login

// 参数
{
"id1":100,
"id2":200
}

二、路由参数获取的三种方式

1. 在方法中以参数名为方法参数,可获取get和post类型的参数

在Login.php控制器中

namespace app\api\controller;
class Login
{
    public function postInfo($id1,$id2){
        echo $id1;
        echo $id2;
        echo 'post info';
    }
}

2. 在方法中通过Request类获取参数,可获取get和post类型的参数

在Login.php控制器中

namespace app\api\controller;
use think\Request;
class Login
{
    public function postInfo(){
        $id1 = Request::instance()->param('id1'); // 可获取get和post类型参数
        $id2 = Request::instance()->param('id2'); // 可获取get和post类型参数

        $id1_post = Request::instance()->post('id1'); // 只获取post类型参数
        $id1_get = Request::instance()->get('id1'); // 只获取get类型参数

        $param_array = Request::instance()->param(); // 以数组的方式获取get和post类型的所有参数
        $param_array_get = Request::instance()->get(); // 以数组的方式获取get类型的所有参数
        $param_array_post = Request::instance()->post(); // 以数组的方式获取post类型的所有参数

        echo $id1;
        echo $id2;
        echo $id1_post;
        echo $id1_get;

        print_r($param_array);
        print_r($param_array_get);
        print_r($param_array_post);
        echo 'post info';
    }
}

或者用依赖注入的方式

namespace app\api\controller;
use think\Request;
class Login
{
    public function postInfo(Request $request){
        $id1 = $request->param('id1'); // 可获取get和post类型参数
        $id2 = $request->param('id2'); // 可获取get和post类型参数

        $id1_post = $request->post('id1'); // 只获取post类型参数
        $id1_get = $request->get('id1'); // 只获取get类型参数

        $param_array = $request->param(); // 以数组的方式获取get和post类型的所有参数
        $param_array_get = $request->get(); // 以数组的方式获取get类型的所有参数
        $param_array_post = $request->post(); // 以数组的方式获取post类型的所有参数

        echo $id1;
        echo $id2;
        echo $id1_post;
        echo $id1_get;

        print_r($param_array);
        print_r($param_array_get);
        print_r($param_array_post);
        echo 'post info';
    }
}

3. 在方法中通过助手函数获取参数,可获取get和post类型的参数

在Login.php控制器中

namespace app\api\controller;
class Login
{
     public function postInfo(){
         $id1 = input('param.id1'); // 可获取get和post类型参数
         $id2 = input('param.id2'); // 可获取get和post类型参数
   
         $id1_post = input('post.id1'); // 只获取post类型参数
         $id1_get = input('get.id1'); // 只获取get类型参数
   
         $param_array = input('param.'); // 以数组的方式获取get和post类型的所有参数
         $param_array_get = input('get.'); // 以数组的方式获取get类型的所有参数
         $param_array_post = input('post.');; // 以数组的方式获取post类型的所有参数
   
         echo $id1;
         echo $id2;
         echo $id1_post;
         echo $id1_get;
   
         print_r($param_array);
         print_r($param_array_get);
         print_r($param_array_post);
         echo 'post info';
     }
}

相关文章

  • thinkphp5.0 路由传参和路由参数获取

    一、路由定义 在路由配置文件router.php中 二、路由参数传递的三种方式(以post请求为例) 1. 在UR...

  • vue-8

    路由 路由传参$route.params.id获取路由上的参数 在js里定义路由组件: 编程式路由

  • vue获取url后面的参数

    使用路由获取页面参数 在路由中设置path: 获取参数 备注:1、参数名需要保持一致2、如果路由中没有传参http...

  • Next.js 跳转传参并接收接参

    介绍路由传参,接参使用方法 传参 + 跳转页面接收参数 动态路由传参 + 跳转页面接收参数创建动态路由在pag...

  • Flutter命名路由的使用和传值

    1.注册路由 2.路由传参和获取反向传的值 3.获取路由正向传的值

  • vue中组件3种编程式路由跳转传参

    路由传参 1、路由配置传参(刷新页面不会丢失参数,url会携带参数) A组件跳转B组件传参A组件 路由配置 B组件...

  • Vue-Router

    1. 路由配置 默认路由跳转 在 new Router时可用的配置参数: 2.路由传参 Vue路由传参的几种方式 ...

  • vue传参

    一、路由传参 1.1、 明文传参 ( 特点:URL路径 显示传递的参数 ) 路由跳转: 传递参数 接收参数 1....

  • 34.vue路由跳转参数的携带

    1.路由简单单参数传递 路由的配置 传参 接收

  • 几种vue的组件传值方式

    几种vue的组件传值方式 1、路由传参 ①定义路由时加上参数props: true,在定义路由路径时要留有参数占位...

网友评论

    本文标题:thinkphp5.0 路由传参和路由参数获取

    本文链接:https://www.haomeiwen.com/subject/vcxphdtx.html