今天測試的時候,發現有個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);