kullanarak bir kereden fazla güncelleyemiyorum Giriş yöntemini bir giriş jsonu ile (giriş json'unda alanlar mobil, userType, deviceId ve deviceType) çağırıyorum. Bu işlevle yaptığım şey, giriş cep telefonu numarasına sahip bir kullanıcı varsa, cihaz ayrıntıları (deviceId ve deviceType) güncellenmelidir, eğer böyle bir kullanıcı yoksa, yeni bir kullanıcı oluşturulmalı ve tüm detaylar oluşturulmalıdır. veritabanına eklenmiştir. Mevcut durum her iki durumda da iade edilmelidir. Herhangi bir hata varsa geri gönderilir.Birleştirme işlemini Laravel Query Builder
Karşılaştığım sorun, halihazırda var olan bir kullanıcının (yeni bir DeviceId ve deviceType ile) cep telefonu numarasını eklediğimde (gerekirse) kullanıcıyı güncelleştirmesidir. Ama yine de yaptığımda, "Cihaz detaylarını güncelleme hatası." Belirli bir sorgunun ilk kez doğru bir şekilde nasıl çalıştığı, ancak bundan sonra nasıl mümkün olabileceği anlaşılamıyor. Lütfen bana yardım et. Şimdiden teşekkürler.
public function login($data){
$returnData = new \stdClass();
if(empty($data['mobile']) || empty($data['userType'])) {
$returnData->response = "error";
$returnData->message = "Insufficient Input";
return json_encode($returnData);
}
$recd = DB::table('users')
->where('mobile',$data['mobile'])
->where('userType',$data['userType'])
->first();
if(!empty($recd)){//user exists, just return the values
if(isset($data['mobile'])){
$updateDeviceDetails = DB::table('users')
->where('mobile',$data['mobile'])
->update(['deviceId'=>$data['deviceId'], 'deviceType'=>$data['deviceType']]);
} else {
echo "mobile not set.";
}
if($updateDeviceDetails){
$updatedUser = DB::table('users')
->where('id',$recd->id)
->get();
$returnData->response = "success";
$recd->isNewUser = "0";
$returnData->data = $updatedUser;
return json_encode($returnData);
} else {
$returnData->response = "error";
$returnData->message = "Error updating the device details.";
return json_encode($returnData);
}
} else {//user does not exist, create new user
if(empty($data['deviceId']) || empty($data['accessToken']) || empty($data['deviceType'])){
$returnData->response = "error";
$returnData->message = "Insufficient Input";
return json_encode($returnData);
}
$data['created_at'] = $data['updated_at'] = Carbon::now('Asia/Kolkata');
$data['otp'] = mt_rand(100000, 999999);
$data['otpStatus'] = 0;
$data['userType'] = 1;
//insert new user
$newUserId = DB::table('users')->insertGetId($data);
if ($newUserId>0) {
//get the newly inserted user
$newUser = DB::table("users")
->where('id',$newUserId)
->first();
//newUser is the object to be returned
$newUser->isNewUser = "1";
$returnData->response = "success";
$returnData->data = $newUser;
} else {
$returnData->response = "error";
$returnData->message = "Error creating new user.";
}
return json_encode($returnData);
}
}