我首先尝试检查数据是否已经存在,如果数据已经存在,则更新功能,否则插入新记录。 它在插入新记录时有效,但我不希望将来成为重复行,
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();
}
}

有人可以指导我,谢谢你的进步。
答案 0 :(得分:3)
你不需要在laravel中自己完成所有这些。使用方法firstOrCreate
。
$data_array = [
'full_name' => $requestData['full name'],
'gender' => $requestData['Gender'],
];
$jobseeker = App\Jobseeker::firstOrCreate(['messenger_user_id' => $messenger_user_id], $data_array);
它将一个数组作为第一个参数来查找模型和数组作为第二个参数来更新该数组中给定键值的记录,或者它将使用给定数据创建一个新记录,然后返回模型对象。