为了账号安全,请及时绑定邮箱和手机立即绑定

如何在laravel中的一个api中添加和更新

如何在laravel中的一个api中添加和更新

PHP
倚天杖 2021-06-11 19:34:25
我正在尝试使用相同的 API 添加和更新,目前,我可以添加,但我不清楚如何使用相同的 API 进行更新。我正在添加针对 id 的文件夹,我的身体反应如下所示:{    "id": "2",    "folder_detail": [1,3,4]}我可以针对 id 2 添加 id 1,3 和 4 的文件夹,但是下次当我使用文件夹 [1,3,5] 使用相同的 API 时,它应该更新文件夹详细信息而不应该再次添加,我可以通过制作单独的 API 来做到这一点但我想在一个 API 中做到这一点。我的控制器代码: try {            $folder = Doctor::where('id', $request->get('id'))->first();            $folder->doctor()->attach($request->get('folder_detail', []));            DB::commit();            return response([                'status' => true,                'message' => 'Folder detail added',            ], 200);        } catch (\Exception $ex) {            DB::rollback();            return response([                'status' => false,                'message' => __('messages.validation_errors'),                'errors' => $ex->getMessage(),            ], 500);        }    }    public function doctor()    {        return $this->belongsToMany('App\Folder', 'folder_details');    }您的帮助将不胜感激?
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

好的,在我们在评论中来回讨论之后,我认为您正在寻找这样的东西:


$folders = $request->get('folder_detail', []);


foreach($folders as $folder) {

    $record = Folder::firstOrNew(['id', $folder]);

    $record->doctor_id = $request->id;


   // You can add your own records here, or use the 'fill' function

}

因此,通过这种方式,您可以遍历所有文件夹。检查具有特定 ID 的文件夹是否已经存在,如果不存在,则创建一个新文件夹。该医生通过您记录中的doctor_id 链接。


查看完整回答
反对 回复 2021-06-19
?
月关宝盒

TA贡献1772条经验 获得超5个赞

查找记录如果存在则更新否则创建



$post = $request->all();


$doctor = Doctor::find($post['id']);


if($doctor){

    $doctor->update([

        //your data for update doctor model

    ]);


    //remove old folders which is related with this doctor

    Folder::where('doctor_id', $doctor->id)->delete();


    //add current data of folder

    if(!empty($post['folder_detail'])){

        foreach($post['folder_detail'] as $folder){

            Folder::create([

                'doctor_id' => $doctor->id,

                'folder_detail' => $folder

            ]);

        }

    }


    //return your response here


} else {

    $doctor = Doctor::create([

        //data for create doctore

    ]);


    //add current data of folder

    if(!empty($post['folder_detail'])){

        foreach($post['folder_detail'] as $folder){

            Folder::create([

                'doctor_id' => $doctor->id,

                'folder_detail' => $folder

            ]);

        }

    }


    //return your response here

}


查看完整回答
反对 回复 2021-06-19
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信