简体   繁体   English

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

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

I am trying to check first if data is already exists or not ,if data is already exists ,then update function otherwise insert a new record. 我试图先检查是否已经存在数据,如果已经存在数据,则更新功能否则插入新记录。 Its working when inserting a new record, but i don't want to be duplicate rows in future, 在插入新记录时可以正常工作,但我不想将来重复行,

  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(); } 
So here is how i tried, i check the messenger user id is already exists or not,if messenger user id already exists i want to update the existing row,otherwise i want to insert a new row. 所以这是我尝试的方式,我检查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(); } } 

Can someone guide me, thanks in advanced. 有人可以指导我,谢谢。

You don't need to do all of this yourself in laravel. 您无需在laravel中自己做所有这些事情。 Use the method firstOrCreate . 使用方法firstOrCreate

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

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

It takes an array as first parameter to find a model and array as a second parameter to update the record with given key-values in that array or it'll create a new record with given data, then returns the model object. 它以数组作为第一个参数来查找模型,并以数组作为第二个参数来更新具有该数组中给定键值的记录,否则它将创建一个具有给定数据的新记录,然后返回模型对象。

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

相关问题 如果记录已经存在,则插入或更新MySQL - INSERT OR UPDATE if record already exists MySQL 检查值是否存在更新,否则插入laravel - check if value exists update else insert laravel 根据用户ID检查记录是否已经存在,并更新是否存在,如果不存在则插入-使用laravel - check if record is already exist against user id and update if exist and insert if not exist - using laravel 如何检查一个值是否已经存在以避免重复?如果存在则不执行任何操作否则将记录插入数据库 - How to check if a value already exists to avoid duplicates?If it exist then do nothing otherwise insert record into database Laravel - 如果已经存在则更新数据库记录 - 所有字段 - Laravel - Update database record if already exists - all fields Laravel - 如何检查日期是否已经存在? - Laravel - How to check if date is already exists? sqllight:如果记录已经存在,我如何检查 PHP? - sqllight: how can I check with PHP if a Record already exists? PHP MYSQL更新时如何检查记录是否已存在? - PHP MYSQL How to check if record already exists when UPDATING? Laravel:检查记录是否存在 - Laravel: Check if record exists else PHP / MySQL:如果记录已经存在,如何返回信息(没有更新) - PHP / MySQL: How to return info if record already exists (without update)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM