alanında eksik alanı olduğunda veritabanı güncelleştirilemiyor Kullanıcının giriş verilerini takip bilgilerini güncellemesine yardımcı olabilecek bir API yapıyorum. Ama giriş json alanında "şifre" olduğunda başarılı bir şekilde güncellenecektir, ancak json bu alana sahip olmadığında veriyi veritabanında güncelleyemiyorum.json
: eksik Parola alanı olduğu için bu hataya neden olur json olan$postData = '{ "UserId" : "1", "password":"12345", "UserName": "minhkhang", "Address": "11/200" }'
:
public function updateUserInfo(Request $request){
$postData = $request->all();
$data = json_decode($postData['postData'], true);
if(isset($data['password'])){
$data['password'] = bcrypt($data['password']);
}
$popData = $data['UserId'];
unset($data['UserId']);
$updateInfo = array();
foreach($data as $info){
if($info != null){
$updateInfo[] = $info;
}
}
$result = DB::update(GeneralFunctions::makeUpdateString($data, 'User', ' UserId = '.$popData), $updateInfo);
if($result != null && $result == true){
return response()->json(['success'=>true, 'data'=>'Update Successful']);
}else{
return response()->json(['success'=>false, 'error'=>'We have encountered an error, try again later!']);
}
}
Bu her şeyin iyi çalışır json geçerli: Bu i veriyi güncellemek için kullanılır koddur
public static function makeUpdateString($keyvalarr, $table, $where){
$stringSQL = 'UPDATE '.$table. ' SET ' ;
foreach($keyvalarr as $fieldname => $updateval){
if($updateval != null){
$stringSQL .= $fieldname.' = ? , ';
}
}
$stringSQL = substr($stringSQL, 0, -2);
if($where != null){
$stringSQL .= 'WHERE '.$where;
}
return $stringSQL;
}
:
$postData = '{ "UserId" : "1", "UserName": "minhkhang", "Address": "11/200" }'
Bu kod i güncelleme metni giriş json izlemesini sağlamak için kullanılır
Teşekkürler.
bu sorunu nasıl çözebilirim, bu anahtarın başka bir projedeki dizide kullanılabilir olup olmadığını kontrol etmek için isset'i kullanmaya çalıştım ama iyi çalışıyor. Bu işlevde bunun neden sorun olduğunu bilmiyorum! –
JSON'da 'parola' yoksa ne olur? kendi başına, 'şifreyi' kullanmayı düşünmüyorsanız, kodun tüm bölümünü kaldırmayı düşündünüz mü? ya da bunu kullanmanız gerekiyor mu ?, bunu zaten denediyseniz, fonksiyona $ veriyi aktardığında, JSON alanlara tuşlara basmaya çalışırken eşleşmiyorsa, ve GÜNCELLEME? Anahtarlar, tablonun beklediğini eşleştirebilir mi? Daha fazla yardımcı olabilecek herhangi bir özel hata alıyor musunuz? –
Şifre json veya null olarak mevcut değilse, o zaman bu anahtarı unsetmem gerekir. Eğer availabel varsa bcrypt ile hash ve –