Laravel 11 Form ve Doğrulama

Merhaba bu dersimizde laravel 11 form ve doğrulama işlemini öğreneceğiz. Özellikle laravel dökümanlart kafanızı karıştırıyorsa laravel 11 form ve doğrulama örnek kodları tam size göre.

Diğer laravel 11 dersleri için sitemizi ve youtube kanalımızı takip edin. 

Şafak Saraçoğlu YouTube | Laravel 11 Eğitim Seti

Laravel 11 ile bir form ve validation örneği yaparken, formu aynı sayfaya hatalar ve doğrulanan verilerle birlikte geri döndürebilirsin. İşte bunun için temel bir örnek:

use App\Http\Controllers\FormController;
use Illuminate\Support\Facades\Route;

Route::get('/form', [FormController::class, 'showForm'])->name('form.show');
Route::post('/form', [FormController::class, 'submitForm'])->name('form.submit');

2. Controller Oluşturma

Form işlemleri için bir controller yazalım. Konsolda aşağıdaki komutla controller'ı oluşturabilirsin:

php artisan make:controller FormController

Sonra, FormController'da formun görüntülendiği ve gönderildiği iki metodu tanımlayalım:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FormController extends Controller
{
 // Formun görüntülenmesi
 public function showForm()
 {
 return view('form');
 }

 // Formun gönderilip doğrulanması
 public function submitForm(Request $request)
 {
 // Validation işlemi
 $validated = $request->validate([
 'name' => 'required|string|max:255',
 'email' => 'required|email',
 'message' => 'required|min:10',
 ]);

 // Başarılı olduğunda aynı sayfaya yönlendirme, validated verilerle
 return redirect()->route('form.show')->withInput($validated)->with('success', 'Form successfully submitted!');
 }
}

3. Form View Dosyası (form.blade.php)

Formu ve doğrulama hatalarını göstermek için bir Blade dosyası oluşturalım. Bu dosyayı resources/views/form.blade.php olarak kaydedebilirsin.

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Laravel 11 Form</title>
</head>
<body>

 <h1>Form Example</h1>

 {{-- Başarılı mesajı --}}
 @if(session('success'))
 <div style="color: green;">
 {{ session('success') }}
 </div>
 @endif

 {{-- Hata mesajlarını gösterme --}}
 @if ($errors->any())
 <div style="color: red;">
 <ul>
 @foreach ($errors->all() as $error)
 <li>{{ $error }}</li>
 @endforeach
 </ul>
 </div>
 @endif

 {{-- Form --}}
 <form action="{{ route('form.submit') }}" method="POST">
 @csrf

 <div>
 <label for="name">Name:</label>
 <input type="text" name="name" value="{{ old('name') }}" required>
 </div>

 <div>
 <label for="email">Email:</label>
 <input type="email" name="email" value="{{ old('email') }}" required>
 </div>

 <div>
 <label for="message">Message:</label>
 <textarea name="message" required>{{ old('message') }}</textarea>
 </div>

 <div>
 <button type="submit">Submit</button>
 </div>
 </form>

</body>
</html>

Laravel 11 Form ve Doğrulama:

  • Form sayfası: Kullanıcıdan ad, e-posta ve mesaj alır.
  • Doğrulama: Ad zorunlu, e-posta geçerli formatta ve mesaj en az 10 karakter olmalıdır.
  • Yönlendirme: Form başarıyla gönderildikten sonra tekrar aynı sayfaya, doğrulanan verilerle birlikte yönlendirilir ve başarı mesajı gösterilir.
  • Hatalar: Form gönderildiğinde doğrulama hataları varsa, form tekrar gösterilir ve hatalar listelenir.

Her adımda form verileri eski değerlerle geri döndürülür, böylece kullanıcı yeniden veri girmek zorunda kalmaz.