POST請求中url和body參數的key相同

今天測試的時候,發現有個post請求很奇怪,它的url中的參數名和body請求體的參數名相同,那麼後臺獲取到的該參數的值會是url中的還是body請求體中的呢?亦或是二者都獲取?

首先我的路由寫法是:

Route::post('goodbye/:id','application/Test/goodbye'); 

然後我的測試文件爲獲取post請求的所有參數值(包括url與body)

<?php
/**
 * Created by PhpStorm.
 * User: 鹹魚俊
 * Date: 2019/7/19
 * Time: 10:25
 */

namespace app\application\controller;


use think\Request;
class Test
{
    public function goodbye(){

        //獲取url後面的所有所有參數值 
        $all = Request::instance()->param();
        var_dump($all);
        
    }
}

那麼接下來用postman測試一下:

從上圖可以發現,url攜帶的id參數值爲123,而body請求體中攜帶的id參數值爲hhh,當經過路由(Route::post('goodbye/:id','application/Test/goodbye'); )之後,獲取的則是url的id參數值,body請求體的id參數值無法獲取。

如果我們只需要獲取body的內容,可以修改Request實例代碼:

$all = Request::instance()->post();
var_dump($all);

當然也可以選擇獲取body請求體中指定的參數值:

$all = Request::instance()->post('id');
var_dump($all);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章