yii2rest-使用PUT更新数据

yii2rest-使用PUT更新数据,yii2,yii2-basic-app,yii2-api,Yii2,Yii2 Basic App,Yii2 Api,我正在Yii2中使用带有授权承载的RESTAPI 我已经完全配置了actionUpdate,但是在使用PUT更新数据时,当我尝试获取post数据时,我得到了空值 print_r($request->getBodyParam('member_id')) 当打印时获得以下结果(Yii::$app->request->bodyParams): 内容-类型为多部分/表单数据 排列 ( [----WebKitFormBoundaryAF3YWAApi5BxYUb2 内容配置:_form-data

我正在
Yii2中使用带有授权承载的RESTAPI
我已经完全配置了actionUpdate,但是在使用PUT更新数据时,当我尝试获取post数据时,我得到了空值

print_r($request->getBodyParam('member_id')) 
打印时获得以下结果(Yii::$app->request->bodyParams):

内容-类型为多部分/表单数据

排列 ( [----WebKitFormBoundaryAF3YWAApi5BxYUb2 内容配置:_form-data;_name]=>“成员\u id” 274505 ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“索赔类型” 3. ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处理:表单数据;name=“访问日期” 2016-10-12 ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“提供者\u id” 0 ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“诊断” 发烧 ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“报销” 1. ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“非面板” 真的 ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“提供者名称” 克林尼克abc ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“报销\原因” 靠近房子 ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处理:表单数据;name=“发票号” 1245 ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处理:表单数据;name=“病假” 0 ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“离开表单” ------WebKitFormBoundaryAF3YWAApi5BxYUb2 内容处置:表单数据;name=“发生额”24 ------WebKitFormBoundaryAF3YWAApi5BxYUb2-- )

下面是我的行动更新

public function actionUpdate($id) {

    $claim = $this->findModel($id);
    $claim->scenario = 'update';

    if ( $claim->status_id == 1 ) {

        $request = Yii::$app->request;

            if (isset($request)) {

                $member_id  = $request->getBodyParam('member_id');
                $claim_type = $request->getBodyParam('claim_type');
                $visit_date = $request->getBodyParam('visit_date');
                $provider_id = $request->getBodyParam('provider_id');
                $diagnosis = $request->getBodyParam('diagnosis');
                $reimbursement = $request->getBodyParam('reimbursement');

                $userlogin_id = Yii::$app->user->identity->id;

                if ($claim->validate() ) {       
                    $claim->save();                             
                    return array('id'=>$claim->id,'msg'=>'Successfully update claim');

                } else {
                    return (ActiveForm::validate($claim));
                }
            }
    } else {
        throw new \yii\web\MethodNotAllowedHttpException('You are not allowed to update data');
    }
}

要将PUT/DELETE请求正文视为表单URL编码的数据,可以读取php://input 并使用parse_str解析它。例如,请参阅。如果我使用body作为表单URL编码的数据,这是可行的,但我想使用多部分/表单数据,因为我需要上载一些文件-@refilon我相信将文件与表单数据一起上载(即多部分)使用PUT时不允许,仅用于POST。查看HTTP规范。若要将PUT/DELETE请求正文视为表单URL编码数据,你可以阅读php://input 并使用parse_str解析它。例如,请参阅。如果我使用body作为表单urlencoded数据,这是可行的,但我想使用multipart/form数据,因为我需要上载一些文件-@RefilonI我认为使用PUT时不允许将文件与表单数据(即多部分)一起上载,仅用于POST。查看HTTP的规范。