Jump to content
Üyelik kaydınızı yaparak son yazılan içeriklerden haberdar olun! ×
  • entries
    24
  • comments
    0
  • views
    73,582

Laravel Validation


Doğuhan ELMA

39 views

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 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...