• 31-03-2020, 17:39:39
    #1
    Merhaba.Laravelde checkbox işleminde seçili ise veritabanına 1 seçilmemişse veritabanına 0 yazdırmak istiyorum.seçili geldiğinde herhangi bir sıkıntı yok.fakat seçilmediğinde değer null geldiği için hata veriyor.internetten araştırıdığımda has ile var olup olmadığı kontrol edilmiş fakat 10 tane checkboxım olursa 10 tane if açmam mantıksız geldi.başka çözüm yolu var mıdır acaba ?
  • 31-03-2020, 17:56:31
    #2
    Merhabalar hocam..

    Ben de bu tarz bir sorun ile karşılaşmıştım başlarda.. Ama 10 tane iften başka şansımız pek yok gibi duruyor malesef.. Şöyle yaparak biraz daha kısaltabilirsiniz kodları..

    $data->is_active= ($request->has('is_active') ) ? 1 : 0;
    $data->update();
    Ek olarak da -denemedim ama- javascipt ile checkbox değiştiğinde gizli bir name değerini 1 ve 0 yaparak da post işlemi yapabilirseniz içerik sürekli dolu gelir ve gelen değeri direkt veritanınıza atayabilirsiniz..
  • 31-03-2020, 18:15:16
    #3
    Checkbox seçilmemiş ise değer null geldiği için has ile değer kontrolu yapabilirsiniz.
    Örneğin
    if($request->has('checkbox name'))
    {
    echo "değer var";
    }
    has name elemanının var olup olmadıgını kontrol eder, değeri kontrol etmez.

    <input type="checkbox" name="name[]" value="1"/>
    <input type="checkbox" name="name[]" value="2"/>
    <input type="checkbox" name="name[]" value="3"/>[B][/B]
    foreach ile Request den gelen name değerleri kontrol edebilirsiniz.

    $name = $request->input('name');
    foreach($name as $names){
    
    }
    yada validator kullanabilirsiniz.
    $validator = Validator::make(request()->all(), [    'name' => 'required',    'name.*' => 'numeric', ]);
  • 31-03-2020, 21:10:13
    #4
    Eloquent casts yapısını incelerseniz fazla kod yazmadan ve laravelin hakkını vererek yaparsınız.

    Selamlar...
  • 31-03-2020, 22:36:33
    #5
    Cevaplar için hepinize teşekkür ederim.