$admin_user=admin_kayit_model::all(); $sayac=1; foreach ( $admin_user as $item) { if($item->username==$request->username) { } else{ } } if($sayac>=1) { return "hata"; }else { $password = $request->password; $password_2 = Hash::make($password); admin_kayit_model::create(['username' => $request->username,'password' => $password_2]); }Mantığını galiba kuramadım.Yardımcı olabilir misiniz?
Laravel aynı username bulma
7
●179
- 02-04-2020, 20:54:03Merhabalar.Laravelded kullanıcı kayıtında aynı isimle kayıt olunmamasını istiyorum.Fakat bu kodları yazdığımda eğer o kullanıcı adında 2 tane kişi kayıtlıysa hata mesajını döndürüyor fakat tek kişi o isimle kayıtlıysa direkt kayıt ediyor.neden olabilir acaba ?
- 04-04-2020, 13:28:17
<?php $admin_users = admin_kayit_model::all(); foreach ($admin_users as $admin_user) { if ($admin_user->username == $request->username) { return "hata"; } } $password = Hash::make($request->password); admin_kayit_model::create(['username' => $request->username, 'password' => $password]);şeklinde yaparsan buradaki problemini çözersin.
AMA
burada büyük bir mantık hatası var. databaseden tüm datayı çekip içinde gezerek validasyon yapmak hiç mantıklı değil.
heleki bu veri büyüdüğünde veya başka bir kontrol daha yapmak istediğinde işler iyice çığırından çıkar.
Bu validasyonlar için laravelin kendi yapası var zaten.
Örnek konu anlatımı: https://www.sakirmehmetoglu.com.tr/l...tion-islemleri
Resmi döküman: https://laravel.com/docs/7.x/validation
Buradaki unique kuralı senin işini hem çok basit şekilde, hemde böyle php tarafında değil direk database sorgusu ile çözecektir.
Bu tarz işlemleri bunlarla yapmanı öneririm. - 04-04-2020, 14:18:00Hocam evet bu hiç aklımda gelmemişti doğru diyosunuz.unique yapısını inceledim fakat tam anlayamadım.çoğu kişi migration kullanarak yapmış fakat ben databasi kendim oluşturdum.Nasıl oluyorda veritabanından karşılaştırma yapıyor.Vaktiniz varsa kullanımını açıklarsanız sevinirimnozkok adlı üyeden alıntı: mesajı görüntüle
- 04-04-2020, 14:44:50Hocam son olarak elle database oluşturmanın dezavantajları nedir acaba?nozkok adlı üyeden alıntı: mesajı görüntüle
- 04-04-2020, 18:36:59İlk önce veritabanı dizaynını versiyon kontrol sistemi içinde tutmuş oluyorsun.
Yapılan değişiklikleri VCS altında tutmuş oluyorsun
Sonra lokalinde yaptığın database değişikliği ile serverda olan değişiklikleri laravel migration yapısı sayesinde senkronlayabiliyorsun.
Veya sen veritabanında bir değişiklik yaptın. aynı projede beraber çalıştığın ekip arkadaşlarına bu zahmetsizce vermiş oluyorsun. öteki türlü yaptığın değişikliği dağıtmakla uğraşacaksın.
Veya projen için bir test ortamın varsa projeyi oraya gönderirken her seferinde database kurmak yerine direk migrationlar sayesinde temiz bir database ile test ortamı kurulumunu yapabiliyorsun.
Veya ekibe/projeye yeni bir arkadaş dahil oldu. ona database i de manuel oluşturmak kurmak ve güncellemeleride manuel yönetmek zorunda kalıyorsun.
vs vs. - 04-04-2020, 21:49:41teşekkürler açıklamanız içinnozkok adlı üyeden alıntı: mesajı görüntüle
- 10-04-2020, 03:16:04Üyeliği durduruldu
public function store(Request $request) { try { $validator = Validator::make($request->all(), [ 'name' => 'required|max:100|min:4', 'username' => 'required|alpha_dash|max:32|min:4|unique:users', 'email' => 'required|email|unique:users', 'password' => 'required|max:32|min:8|same:confirm-password', 'avatar' => 'mimes:jpg,jpeg,png,gif,bmp', ] ); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors()->all()); } $input = $request->all(); $input['password'] = Hash::make($input['password']); $user = new User(); $user->name = $request->name; $user->username = $request->username; $user->email = $request->email; $user->telephone = $request->telephone; $user->gender = $request->gender; $user->password = Hash::make($request->password); if ($request->hasFile('avatar')) { $file = $request->file('avatar'); $filename = str_slug($user->username) . '.' . $file->getClientOriginalExtension(); $user->avatar = $filename; File::makeDirectory(public_path('uploads/users'), 0777, true, true); Image::make($file->getRealPath())->resize(300, 300)->save(public_path('uploads/users/' . $filename), 100); } $user->save(); return redirect()->route('users.list')->withSuccess(trans('dashboard.alerts.successmessage')); } catch (\Exception $e) { return redirect()->back()->withError(trans('dashboard.alerts.errormessage')); } }
