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');
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!');
}
}
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>