HaYLaZ adlı üyeden alıntı:
mesajı görüntüle
Laravelde post olayını anlattım içeri
14
●374
- 04-07-2022, 16:27:28Hayır anlamadınız hatayı görmek için blade dosyasında tanımlıyoruz onu yazmayı unutmuşum galiba
- 04-07-2022, 16:40:58Yok eksik yazmamışım kodları iyice inceleyin bende çalışıyor bir sorun yok blade dosyasında da tanımlamışım zatenHaYLaZ adlı üyeden alıntı: mesajı görüntüle
- 04-07-2022, 16:44:48kodlar çalışır çalışmaz demedim.
Validatordan geçmeyen koşulları nasıl ekranda göstereceksiniz?
Sizin kodlarınızda validator hatalarının geri dönüşü yok.
->withErrors($validator->errors());
aşağıdaki kodları da hatalar.blade.php isminde bir dosya içine kaydedersiniz;
@if(Session::has('success')) <div class="col-lg-12 col-md-12"> <div class="alert alert-success" role="alert"> {{Session::get('success') }} </div> </div> @endif @if(Session::has('error')) <div class="col-lg-12 col-md-12"> <div class="alert alert-danger" role="alert"> <span class="fw-medium">Hata : </span> {{Session::get('error') }} </div> </div> @endif @if($errors->any()) <div class="col-lg-12 col-md-12"> @foreach($errors->all() as $error) <div class="alert alert-danger" role="alert"> <span class="fw-medium">Hata : </span>{{$error}} </div> @endforeach </div> @endifbu dosyayı da ana template dosyasına include edersiniz;
@include('hatalar')sonrasında hangi sayfada olursanız olun, controllerdan gelen hatalar ekrana basılır.
kural oluşturmanın tek yöntemi bu değil elbette;
yeni bir request oluşturursunuz;
php artisan make:request BlogControlRequest
validator kodlarını bu requeste rules ve messages şeklinde eklersiniz,
Sonra controllerdan direk olarak bu request ile işlem yaptırırsınız. Böylece controllerdaki kod kalabalığı da azalmış olur
public function store(BlogControlRequest $request) { diğer kodlar }NOT: amacım konunu baltalamak değil, faydalı olabileceğini düşündüğüm şeyleri de eklemek. - 04-07-2022, 21:55:47şöle anlatayım lang/tr veya lang/en klasörünün içinde zaten validation.php dosyamız var onu türkçeleştirdinizmi türkçe dönüyor fakat bende şuan güvenlik açığı olmadan bile mesela diyelimki A sayfasına post edicek A sayfasında eğer hata alırsak o hatayı B sayfasında gösteriyor hemde A sayfasının ismini vermiyor gizliyor burda amaç güvenlik açaısından A sayfasının ismini vermemek ve post işlemi başarılı olursa yine B sayfasında işlem yapmaktır... aslında bütün post işlemi A sayfasında yapılıyor ama biz B sayfasında gibi işlemleri gösteriyoruz buda güvenlik açığı oluşturmuyor umarım faydalı olmuşumdur
- 27-07-2022, 14:14:01Konu üzerinden zaman geçmiş ama eksik bilgiyi tamamlamak için yazıyorum.HaYLaZ adlı üyeden alıntı: mesajı görüntüle
Validator::make... şeklinde bir kullanım yapılırsa sizin yazdığınız şekilde yazılmalı ki hatalar yakalansın ve response edilsin. Doğrudur.
Ancak arkadaş $request->validate()... şeklinde bir kullanım yapmış. Bu kullanım şekli zaten olası hata durumunda sizin altta yazmış olduğunuz ekstra kodu gerçekleştirir. Yani iki kullanımda doğrudur.
Akabinde viewde $errors->all() şeklinde hataları yakalabilirsiniz.
Döküman:
https://laravel.com/docs/9.x/validation#quick-writing-the-validation-logic - 27-07-2022, 22:01:00Validasyonları request sınıfı oluşturup yapmak en mantıklısı hocam resources/lang kısmından dil ekleyip validasyon mesajlarını ordan gösteriyorumblap adlı üyeden alıntı: mesajı görüntüle
https://github.com/laravel-tr/Laravel8-lang