簡體   English   中英

使用laravel調用數組上的成員函數save()

[英]Call to a member function save() on array - using laravel

我正在嘗試更新我的用戶信息,我已經使json的對象當前我的json有用戶配置文件的對象,我想使用json對象保存我的信息我還有我的控制器代碼,我用$ userProfile替換了$ request。

{
"user_profile": {

    "email": "shahzadshahg@hotmail.com",
    "password": "admin123",
    "password_confirmation": "admin123",
    "status": 0,
    "first_name": "Shahzad",
    "middle_name": "ali123",
    "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,
    "id": 1
    }
    }

我正在更新記錄的控制器:

public function update(Request $request) {

    $body = $request->all();

    $userProfile = $body['user_profile'];
    $bodyObj = $userProfile;

    $validator = UserValidations::validateUser($bodyObj, true);

    if ($validator->fails()) {
        return response(['status' => false,'message' => __('messages.validation_errors'), 'errors' => $validator->errors()->all()], 200);
    }

    DB::beginTransaction();

    try{
        $user = $this->user->find($userProfile['id']);
        $user->fill($userProfile->all())->save();

        $userProfile->request->add(['user_id' => $user->id]);
        //Update User Basic Info
        $userBasicInfoId = $this->userBasicInfo->where('user_id', $userProfile->input('id'))->value('id');
        if($userBasicInfoId) {
            $userBasicInfo = $this->userBasicInfo->find($userBasicInfoId);
            $userBasicInfo->fill($userProfile->all())->save();
        } else {
            $userBasicInfo = $this->userBasicInfo->create($userProfile->only($this->userBasicInfo->getModel()->fillable));
        }

        //Update User Contact Details
        $userContactDetailId = $this->userContactDetails->where('user_id', $userProfile->input('id'))->value('id');
        if($userContactDetailId) {
            $userContactDetails = $this->userContactDetails->find($userContactDetailId);
            $userContactDetails->fill($userProfile->all())->save();
        } else {
            $userContactDetails = $this->userContactDetails->create($userProfile->only($this->userContactDetails->getModel()->fillable));
        }


        //Update User Module
        $module_id = $this->userAccessModule->where('user_id', $userProfile->input('id'))->value('id');
        if($module_id) {
            $userModule = $this->userAccessModule->find($module_id);
            $userModule->fill($userProfile->all())->save();
        } else {
            $userModule = $this->userAccessModule->create($userProfile->only($this->userAccessModule->getModel()->fillable));
        }

        //Update User Roles
        $user_role_id = $this->userRoles->where('user_id', $userProfile->input('id'))->value('id');
        if($user_role_id) {
            $userRole = $this->userRoles->find($user_role_id);
            $userRole->fill($userProfile->all())->save();
        } else {
            $userRole = $this->userRoles->create($userProfile->only($this->userRoles->getModel()->fillable));
        }


        //Getting the update User infor
        $user = $this->user->with('userBasicInfo', 'userContactInfo','userAccessModule', 'userRole:id,user_id,role_id')->where('id', $request->input('id'))->first();

        DB::commit();

        return response(['status' => true, 'message' => 'User updated successfully', 'data' => $user], 200);

    } catch(\Exception $ex) {
        DB::rollback();
        return response(['status' => false, 'message' => $ex->getMessage()], 500);
    }
}

我用$ userProfile替換了$ request但是我得到了一個錯誤,我可以使用json對象更新我的記錄。 我們將非常感謝您的幫助!

你好,你可以試試這個:

$json = file_get_contents(storage_path('user_profile.json'));
$users_profile = json_decode($json,true);
foreach ($users_profile as $user_profile)  {
        foreach ($$user_profile as $key => $value) {
            $insertArr[str_slug($key,'_')] = $value;
            $userBasicInfo->fill($user_profile->all())->save();
        }

將此添加到您的代碼中

>如果我有任何錯誤,請編輯它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM