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的规范。