İçeriğe atla
Üyelik kaydınızı yaparak son yazılan içeriklerden haberdar olun! ×

Laravel

  • makale
    24
  • yorum
    0
  • görüntüleme
    113.638

Laravel Validation


Doğuhan ELMA

69 görünüm

Laravel, PHP için yazılmış popüler bir web uygulama çatısıdır ve güçlü form doğrulama özellikleri sunar. Form doğrulama, kullanıcıların bir form üzerinden gönderdikleri verilerin uygunluk, güvenlik ve bütünlüğünü sağlamak için kullanılır. Laravel'de form doğrulama işlemleri kolay ve esnek bir şekilde gerçekleştirilebilir.

Laravel'de Form Doğrulama Adımları

Controller Metodu Oluşturma: İlk olarak, kullanıcının form verisini göndereceği bir controller metodu oluşturmanız gerekir.

Validation Kullanımı: Laravel, validate metodunu kullanarak gelen isteklerdeki verileri doğrulamanıza olanak tanır. Bu metod, bir dizi kurallar alır ve bu kurallara uygun olmayan veriler varsa, otomatik olarak kullanıcıya bir hata mesajı ile yanıt verir.

$validatedData = $request->validate([
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
]);

 

Bu örnekte, title alanının dolu (required), benzersiz (unique:posts) ve en fazla 255 karakter uzunluğunda (max:255) olması gerektiğini belirtiyoruz. body alanı için ise sadece dolu olması gerektiğini belirtiyoruz.

Hata Mesajlarını Özelleştirme: Laravel, hata mesajlarını özelleştirmenize de olanak tanır. Doğrulama kurallarını ihlal eden veriler için özel hata mesajları tanımlayabilirsiniz.

$messages = [
    'title.required' => 'Başlık alanı gereklidir.',
    'body.required'  => 'İçerik alanı gereklidir.',
];

$validatedData = $request->validate([
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
], $messages);

 

Form Request Kullanımı: Karmaşık doğrulama kuralları için veya doğrulama işlemini controller dışında bir yerde merkezileştirmek istiyorsanız, Laravel'in Form Request özelliğini kullanabilirsiniz. Bu, doğrulama mantığınızı özel bir sınıf içinde tutmanıza olanak tanır.

Önce bir Form Request sınıfı oluşturun:

php artisan make:request StorePostRequest

 

Ardından, bu sınıfın içindeki rules metodunu doğrulama kurallarınızla doldurun.

public function rules()
{
    return [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ];
}

Controller metodunuzda, tip bildirimini kullanarak bu Form Request sınıfını istek olarak alabilirsiniz.

public function store(StorePostRequest $request)
{
    // Doğrulanan veriye erişim
}

Laravel form doğrulama özellikleri, güvenli ve kullanıcı dostu web uygulamaları geliştirmenize yardımcı olur. Laravel'in sağladığı bu esnek ve güçlü araçlar sayesinde, uygulamanızda veri doğrulama işlemlerini kolaylıkla yönetebilirsiniz.

Özel Hata Mesajları:

Özel hata mesajları tanımlamak için, doğrulama kurallarınızı bir Controller'da veya Form Request sınıfında işlerken, özel mesajlarınızı bir dizi olarak geçirebilirsiniz. Örneğin:

$request->validate([
    'email' => 'required|email',
    'password' => 'required|min:6',
], [
    'email.required' => 'E-posta adresi gereklidir.',
    'email.email' => 'Geçerli bir e-posta adresi giriniz.',
    'password.required' => 'Şifre alanı gereklidir.',
    'password.min' => 'Şifreniz en az 6 karakter uzunluğunda olmalıdır.',
]);

 

Blade Hata Mesajı:

...
@error('title')
        {{ $errors->first('title') }}
        @enderror
        
...

Tüm hataları göstermek için:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

 

Bazı Kurallar:

required: Alanın değeri olmalıdır; boş olamaz.

nullable: Alan boş bırakılabilir.

min:value: Sayısal alanlar için minimum değer, metin alanları için minimum uzunluk.

max:value: Sayısal alanlar için maksimum değer, metin alanları için maksimum uzunluk.

between:min,max: Değerin, belirtilen min ve max değerleri arasında olması gerekir.

in:foo,bar,...: Alanın değeri, belirtilen değerler listesinden biri olmalıdır.

not_in:foo,bar,...: Alanın değeri, belirtilen değerler listesinde olmamalıdır.

unique:table,column,except,idColumn: Veritabanında benzersiz olmalı. İsteğe bağlı olarak, belirli bir tablonun belirli bir sütununda benzersizliği kontrol eder.

exists:table,column: Verilen tablo ve sütunda değerin mevcut olması gerekir.

email: Geçerli bir e-posta adresi formatında olmalıdır.

url: Geçerli bir URL formatında olmalıdır.

date: Geçerli bir tarih formatında olmalıdır.

date_format:format: Belirli bir tarih formatına uymalıdır.

confirmed: Alanın, alan_adı_confirmation adında bir eşleşen alanı olmalı ve her ikisi de aynı değere sahip olmalıdır.

integer: Tam sayı olmalıdır.

numeric: Sayısal bir değer olmalıdır.

array: Bir dizi olmalıdır.

string: Bir metin stringi olmalıdır.

boolean: Bir boolean değeri olmalıdır (true ya da false).

file: Geçerli bir dosya olmalıdır.

image: Bir resim dosyası olmalıdır.

0 Yorum


Önerilen Yorumlar

Görüntülenecek yorum yok.

Misafir
Yorum ekle...

×   Zengin metin olarak yapıştırıldı.   Bunun yerine düz metin olarak yapıştır

  Yalnızca 75 emojiye izin verilir.

×   Bağlantınız otomatik olarak gömüldü.   Bunun yerine bağlantı olarak görüntüle

×   Önceki içeriğiniz geri yüklendi.   Düzenleyiciyi temizle

×   Görüntüleri doğrudan yapıştıramazsınız. URL'den resim yükleyin veya ekleyin.

×
×
  • Create New...