无法访问 PUT 请求正文参数

问题描述 投票:0回答:1

我正在通过具有表单数据正文的 Postman 发出此 PUT 请求: PUT request

并尝试使用此行填充模型:

$model->load(Yii::$app->request->getBodyParams(), '');

Trying to print body params

看,我尝试在调试控制台上打印请求的worker_id、time_out参数,但得到空值。 getBodyParams() 仅返回一个包含一个(“图像”)元素的数组

Getting all params

php rest yii2 postman put
1个回答
0
投票

对于

POST
以外的方法,Yii2 不使用
$_POST
数组来获取主体参数。它在原始主体上使用
mb_parse_str()
代替。这种方法可能在解析多部分请求正文时出现问题。

要使 yii2 正确解析多部分主体,您必须将

yii\web\MultipartFormDataParser
添加到
yii\web\Request::$parsers
以获得
multipart/form-data
内容类型。

您可以将其添加到您的配置中,如下所示:

return [
    // ...
    'components' => [
        'request' => [
            'parsers' => [
                'multipart/form-data' => 'yii\web\MultipartFormDataParser'
            ],
        ],
        // ...
    ],
    // ...
];
© www.soinside.com 2019 - 2024. All rights reserved.