[英]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(); }
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.