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
