Laravel 10 Form Doğrulama Örneği

L

Bu eğitim size laravel 10 form doğrulama örneği sunacak. Laravel 10 form doğrulama ve hata mesajlarıyla ilgili bilgi edineceksiniz. Laravel 10'da form doğrulama için bir istek nesnesi sağlanmaktadır. İstek nesnesi kullanarak doğrulama kuralları ve özel mesajlar ekleyeceğiz. Hata mesajlarını göstermek için $errors değişkenini kullanacağız. Laravel 10 uygulamasına form doğrulaması eklemenin adım adım basit bir örneğini sizinle paylaşacağım.

Hadi form doğrulaması eklemek için aşağıdaki örneğe bir göz atalım.

Adım 1: Laravel 10'u Yükleyin

Bu adım zorunlu değildir, ancak henüz bir Laravel uygulamanız yoksa aşağıdaki komutu çalıştırarak bir Laravel uygulaması oluşturabilirsiniz:

composer create-project laravel/laravel example-app

Adım 2: Controller Oluşturma

Bu adımda, form doğrulama için yeni bir FormController oluşturacağız. Bu denetleyiciye create() ve store() adında iki yöntem ekleyeceğiz. Aşağıdaki komutla yeni bir denetleyici oluşturalım.

php artisan make:controller FormController

Sonraki adımda, aşağıdaki kodu oluşturduğumuz dosyaya ekleyelim.

app/Http/Controllers/FormController.php

<?php
    
namespace App\Http\Controllers;
    
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\View\View;
use Illuminate\Http\RedirectResponse;
   
class FormController extends Controller
{
    /**
     * Uygulama anasayfasını gösterir.
     *
     * @return \Illuminate\Http\Response
     */
    public function create(): View
    {
        return view('createUser');
    }
        
    /**
     * Uygulama anasayfasını gösterir.
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request): RedirectResponse
    {
    
        $validatedData = $request->validate([
                'name' => 'required',
                'password' => 'required|min:5',
                'email' => 'required|email|unique:users'
            ], [
                'name.required' => 'İsim alanı zorunludur.',
                'password.required' => 'Şifre alanı zorunludur.',
                'email.required' => 'E-posta alanı zorunludur.',
                'email.email' => 'E-posta alanı geçerli bir e-posta adresi olmalıdır.'
            ]);
      
        $validatedData['password'] = bcrypt($validatedData['password']);
        $user = User::create($validatedData);
            
        return back()->with('success', 'Kullanıcı başarıyla oluşturuldu.');
    }
} 


Adım 3: Rotaları Oluşturma 

Ayrıca, routes/web.php dosyasını açın ve form görüntüsünü çağırmak ve form doğrulama işlemlerini yönetmek için GET ve POST isteklerini yöneten rotaları ekleyin.

routes/web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\FormController;
  
/* 
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Bu bölümde uygulamanız için web rotalarını kaydedebilirsiniz. Bu
| rotalar, RouteServiceProvider tarafından bir "web" ara yazılım grubu içinde
| yüklenir. Şimdi bir şeyler harika oluşturun!
|
*/
  
Route::get('user/create', [FormController::class, 'create']);
Route::post('user/create', [FormController::class, 'store']);

Adım 4: Blade Dosyası Oluşturma

Şimdi, createUser.blade.php adında bir dosya oluşturacağız ve burada hata doğrulama mesajlarıyla basit bir Bootstrap formu oluşturacağız. İşte aşağıdaki dosyayı oluşturalım:

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 10 Form Doğrulama Örneği</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container">
    
        <h1>Laravel 10 Form Doğrulama Örneği</h1>
       
        @if(Session::has('success'))
        <div class="alert alert-success">
            {{ Session::get('success') }}
            @php
                Session::forget('success');
            @endphp
        </div>
        @endif
    
        <!-- Yöntem 1: Tüm Hata Mesajlarını Göster -->
        @if ($errors->any())
            <div class="alert alert-danger">
                <strong>Hata!</strong> Girişinizle ilgili bazı sorunlar vardı.<br><br>
                <ul>
                    @foreach ($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
        @endif
       
        <form method="POST" action="{{ url('user/create') }}">
      
            {{ csrf_field() }}
      
            <div class="mb-3">
                <label class="form-label" for="inputName">Ad:</label>
                <input 
                    type="text" 
                    name="name" 
                    id="inputName"
                    class="form-control @error('name') is-invalid @enderror" 
                    placeholder="Ad">
  
                <!-- Yöntem 2: Hata Mesajını Göster -->
                @error('name')
                    <span class="text-danger">{{ $message }}</span>
                @enderror
            </div>
     
            <div class="mb-3">
                <label class="form-label" for="inputPassword">Şifre:</label>
                <input 
                    type="password" 
                    name="password" 
                    id="inputPassword"
                    class="form-control @error('password') is-invalid @enderror" 
                    placeholder="Şifre">
  
                <!-- Yöntem 3: Hata Mesajını Göster -->
                @if ($errors->has('password'))
                    <span class="text-danger">{{ $errors->first('password') }}</span>
                @endif
            </div>
       
            <div class="mb-3">
                <label class="form-label" for="inputEmail">E-posta:</label>
                <input 
                    type="text" 
                    name="email" 
                    id="inputEmail"
                    class="form-control @error('email') is-invalid @enderror" 
                    placeholder="E-posta">
  
                @error('email')
                    <span class="text-danger">{{ $message }}</span>
                @endif
            </div>
     
            <div class="mb-3">
            <button class="btn btn-success btn-submit">Gönder</button>
          </div>
        </form>
</div>

</body>
</html>

Bu şekilde createUser.blade.php dosyasını oluşturarak, Bootstrap ile basit bir form ve hata doğrulama mesajlarına sahip bir görünüm elde etmiş olacaksınız.

Laravel Uygulamasını Çalıştırma:

Tüm gerekli adımlar tamamlandı, şimdi aşağıdaki komutu yazıp Enter tuşuna basarak Laravel uygulamasını çalıştırmanız gerekiyor:

php artisan serve

Daha sonra web tarayıcınıza gidin, aşağıdaki URL'yi yazın ve uygulama çıktısını görüntüleyin:

http://localhost:8000/user/create

By Aydın Yağız

Aydın Yağız

Teknolojiye olan tutkumla inovasyonu destekler, kullanıcı deneyimini önceliklerim arasına alırım. Kendi yeteneklerimi ve bilgilerimi paylaşarak, daha geniş bir topluluğun faydalanmasını sağlarım. İş birliği içinde hareket ederek, geleceğin teknoloji dünyasına katkıda bulunmayı hedeflerim. Sizi de bu heyecan verici yolculuğa davet ediyor, fikirlerinizi paylaşmaya ve teknolojiye dair sınırları zorlamaya teşvik ediyorum. Birlikte büyüyelim ve yeni ufuklara açılalım!

İletişime Geçin

Kodlama dünyasına adım atın ve deneyimlerinizi paylaşın. Siz de bu aktif topluluğa katılarak yeni bağlantılar kurun, fikir alışverişinde bulunun ve bilgi birikiminizi artırın.

Özelleştir

Farklı yazı tipleri ve renk seçenekleriyle stilinizi kişiselleştirin. Aşağıdaki örneklerden birini deneyerek sizin için en uygun olanı seçin.

Yazı Tipi Örnekleri

Renk Örnekleri