【发布时间】:2019-08-21 09:45:40
【问题描述】:
我想拆分 json 对象,我正在使用邮递员,这是我的正文请求,我正在使用 laravel 框架,我是新手,我不知道如何拆分 json。
这是我的实际 json,我想将此主体请求拆分为两个对象 我不知道如何在 php laravel 中做到这一点。
{
"email": "shahzad@ovadamd.com",
"password": "admin123",
"password_confirmation": "admin123",
"status": 0,
"first_name": "Shahzad",
"middle_name": "Hussain",
"last_name": "Shah",
"date_of_birth": "2015-01-01",
"gender": "M",
"area_id": 1,
"address": "Minhatten NY",
"city": "New York",
"state": "Washington",
"zip": "12312",
"fax": "111-111-1111",
"phone_extension": "2471",
"work_phone": "111-111-1111",
"phone_no": "111-111-1111",
"emergency_contact": "111-111-1111",
"social_security": "111-11-1111",
"module_id": 1,
"role_id": 1,
"speciality_id": 1,
"facility_id": 1,
"priv_title": "can edit doctor",
"priv_key": "ced",
"display_group": "Doctor",
"prev_id" :1
}
我想像这样将 json 拆分成两个对象:
{
"user_profile": {
"email": "shahzadg@ovadamd.com",
"password": "admin123",
"password_confirmation": "admin123",
"status": 0,
"first_name": "Shahzad",
"middle_name": "Hussain",
"last_name": "Shah",
"date_of_birth": "2015-01-01",
"gender": "M",
"area_id": 1,
"address": "Minhatten NY",
"city": "New York",
"state": "Washington",
"zip": "12312",
"fax": "111-111-1111",
"phone_extension": "2471",
"work_phone": "111-111-1111",
"phone_no": "111-111-1111",
"emergency_contact": "111-111-1111",
"social_security": "111-11-1111",
"module_id": 2,
"role_id": 1
},
"prev":{
"speciality_id": 1,
"facility_id": 1,
"priv_title": "can edit doctor",
"priv_key": "ced",
"display_group": "Doctor",
"prev_id" :1
}
}
我们将非常感谢您的帮助!
$body = $request->all();
$userProfile = $body['user_profile'];
$userPrev = $body['prev'];
$bodyObj = array_merge($userProfile, $userPrev);
$bodyObj['token'] = $body['token'];
$validator = UserValidations::validateUser($request->all());
public function register(Request $request) {
$body = $request->all();
$userProfile = $body['user_profile'];
$userPrev = $body['prev'];
$bodyObj = array_combine($userProfile, $userPrev); array_chunk($body,true);
$bodyObj['token'] = $body['token'];
$validator = UserValidations::validateUser($bodyObj);
if ($validator->fails()) {
return response([
'status' => false,
'message' => __('messages.validation_errors'),
'errors' => $validator->errors()->all()
], 200);
}
DB::beginTransaction();
try{
$token = JWTAuth::getToken();
$apy = JWTAuth::getPayload($token)->toArray();
$request->merge(['module_id' => $apy['module_id']]);
$request->request->add(['created_by' => Auth::user()->id]);
$request->merge(['password' => bcrypt($request->input('password'))]);
$user = $this->user->create($request->only($this->user->getModel()->fillable));
$request->request->add(['user_id' => $user->id]);
$this->userBasicInfo->create($request->only($this->userBasicInfo->getModel()->fillable));
$this->userContactDetails->create($request->only($this->userContactDetails->getModel()->fillable));
$this->userAccessModule->create($request->only($this->userAccessModule->getModel()->fillable));
$this->userRoles->create($request->only($this->userRoles->getModel()->fillable));
$this->verifyUser->create(['user_id' => $user->id, 'token' => str_random(40)]);
$this->userSpeciality->create($request->only($this->userSpeciality->getModel()->fillable));
$this->userFacility->create($request->only($this->userFacility->getModel()->fillable));
$this->userDefinition->create($request->only($this->userDefinition->getModel()->fillable));
$this->userPrev->create($request->only($this->userPrev->getModel()->fillable));
Mail::to($user->email)->send(new VerifyMail($user));
DB::commit();
return response([
'status' => true,
'message' => 'User registered successfully',
], 200);
} catch(\Exception $ex) {
DB::rollback();
return response([
'status' => false,
'message' => __('messages.validation_errors'),
'errors' => $ex->getMessage(),
], 500);
}
}
【问题讨论】: