• 08-04-2020, 20:58:14
    #1
    Merhabalar.Bir sorum olucak.
    Şimdi ben bir profil sistemi oluşturdum ve bu profili kullanıcının güncellemesini sağlıyorum.Profilde güncellenecek yerler olaraki isim email ve profil resmi var.validation ile imagin png,jpg,gif olup olmadığını kontrol ediyorum.Buraya kadar her şey normal.Fakat ben sadece isim ve maili yazıp profil resmini seçmediğimde validationda png,jpg,gif lerden biri olması gerektiğini söylediğim için boş gönderdiğimde haliyle hata alıyorum.Çözüm olarak aklımda has ile imagein olupolmadığı kontrol ettirilip işlem yapılabilir ama buda alttaki if ve else içindeki kod karmaşası olacağı için olumlu bakmıyorum.Validationda boş gelebilir demek için herhangi bir şey var mı acaba ?
  • 09-04-2020, 22:27:35
    #2
    mevcut kodunu paylaşsan daha temiz net olur aslında bu tarz problemlere çözüm bulman için.

    Ama son cümlenin cevabı nullable

    https://laravel.com/docs/7.x/validation#rule-nullable
  • 10-04-2020, 03:00:46
    #3
    Üyeliği durduruldu
    public function profileUpdate(Request $request){
    $user = User::find(Auth::user()->id);
    try {
    $validator = Validator::make($request->all(),
    [
    'name' => 'required|max:100|min:4',
    'email' => 'required|email|unique:users,email,' . $user->id,
    'avatar' => 'mimes:jpg,jpeg,png,gif,bmp',
    ]
    );
    if ($validator->fails()) {
    return redirect()->back()->withErrors($validator->errors()->all());
    }
    $user->name = $request->name;
    $user->email = $request->email;
    $user->telephone = $request->telephone;
    $user->gender = $request->gender;
    if ($request->hasFile('avatar')) {
    Storage::disk('uploads')->delete('users/' . $user->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); // file resize
    }
    $user->save();
    return redirect()->back()->withSuccess(trans('dashboard.alerts.successmessage'));
    } catch (\Exception $e) {
    return redirect()->back()->withError(trans('dashboard.alerts.errormessage'));
    }
        }
    işinizi görecetir.
  • 10-04-2020, 11:40:02
    #4
    teşekkür ederim