我想首先检查数据是否已经存在。如果数据已经存在,则更新函数,否则插入新记录。插入新记录时它可以工作,但我不想将来出现重复的行。
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();
}Run Code Online (Sandbox Code Playgroud)
这是我尝试的方法,我检查信使用户 ID 是否已经存在,如果信使用户 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();
}
}Run Code Online (Sandbox Code Playgroud)
您不需要在 Laravel 中自己完成所有这些工作。使用方法firstOrCreate。
$data_array = [
'full_name' => $requestData['full name'],
'gender' => $requestData['Gender'],
];
$jobseeker = App\Jobseeker::firstOrCreate(['messenger_user_id' => $messenger_user_id], $data_array);
Run Code Online (Sandbox Code Playgroud)
它使用数组作为第一个参数来查找模型,使用数组作为第二个参数来更新该数组中给定键值的记录,或者它将使用给定数据创建一个新记录,然后返回模型对象。
| 归档时间: |
|
| 查看次数: |
3862 次 |
| 最近记录: |