我正在使用Slim Framework版本3並且存在一些問題。Slim 3 getParsedBody()總是爲空並且爲空
$app-> post('/', function($request, $response){
$parsedBody = $request->getParsedBody()['email'];
var_dump($parsedBody);
});
結果總是:
空
你能幫助我嗎?
我正在使用Slim Framework版本3並且存在一些問題。Slim 3 getParsedBody()總是爲空並且爲空
$app-> post('/', function($request, $response){
$parsedBody = $request->getParsedBody()['email'];
var_dump($parsedBody);
});
結果總是:
空
你能幫助我嗎?
這取決於你如何發送數據到路由。這是POST路由,因此默認情況下它會將身體數據轉換爲標準格式(application/x-www-form-urlencoded
)。
如果您要將JSON發送到此路線,那麼您需要將Content-type
標頭設置爲application/json
。即捲曲看起來像:
curl -X POST -H "Content-Type: application/json" \
-d '{"email": "[email protected]"}' http://localhost/
此外,還應驗證您正在尋找的數組鍵是存在的:
$parsedBody = $request->getParsedBody()
$email = $parsedBody['email'] ?? false;
我得到NULL與var_dump($ request-> getParsedBody());當使用PATCH或PUT請求時。但POST請求返回請求主體。 PATCH和PUT有不同的方法嗎? – ultrasamad
@ultrasamad請用最小的PHP代碼示例和用於顯示問題的curl命令創建一個單獨的問題。 –
請嘗試這種方式:
$app-> post('/yourFunctionName', function() use ($app) {
$parameters = json_decode($app->request()->getBody(), TRUE);
$email = $parameters['email'];
var_dump($email);
});
我希望這可以幫助你!
你能解釋一下您的請求發送數據到應用程序? –
顯示捲曲請求示例。 –