繁体   English   中英

如何检查记录是否已经存在,然后在laravel中更新或插入?

[英]How to check if record is already exists and then update or insert in laravel?

我试图先检查是否已经存在数据,如果已经存在数据,则更新功能否则插入新记录。 在插入新记录时可以正常工作,但我不想将来重复行,

  public function store(Request $request) { $requestData = $request->all(); $jobseeker = new Jobseeker(); $jobseeker->fullname= $requestData['full name']; $jobseeker->gender= $requestData['Gender']; $jobseeker->messenger_user_id= $request->{'messenger user id'}; $jobseeker->save(); } 
所以这是我尝试的方式,我检查Messenger用户ID是否已经存在,如果Messenger用户ID已经存在,我想更新现有行,否则我想插入新行。

  public function store(Request $request,$messenger_user_id) { $requestData = $request->all(); $my_msg_id = Jobseeker::where('messenger_user_id',$requestData['messenger user id'])->first(); if (is_null($my_msg_id)) { $jobseekers = Jobseeker::find($messenger_user_id); $jobseeker->fullname= $requestData['full name']; $jobseeker->gender= $requestData['Gender']; $jobseeker->messenger_user_id= $request->{'messenger user id'}; } else{ $jobseeker = new Jobseeker(); $jobseeker->fullname= $requestData['full name']; $jobseeker->gender= $requestData['Gender']; $jobseeker->messenger_user_id= $request->{'messenger user id'}; $jobseeker->save(); } } 

有人可以指导我,谢谢。

您无需在laravel中自己做所有这些事情。 使用方法firstOrCreate

$data_array = [
    'full_name' => $requestData['full name'],
    'gender' => $requestData['Gender'],
];

$jobseeker = App\Jobseeker::firstOrCreate(['messenger_user_id' => $messenger_user_id], $data_array);

它以数组作为第一个参数来查找模型,并以数组作为第二个参数来更新具有该数组中给定键值的记录,否则它将创建一个具有给定数据的新记录,然后返回模型对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM