Laravel: 0 dan Pro gacha – 5-qism: Formlar va Validatsiya
📝 Kirish
Har qanday veb-ilovada foydalanuvchidan ma’lumot olish muhim bosqich. Laravel bu jarayonni osonlashtirish uchun formalarni yaratish va validatsiya qilish mexanizmlarini taklif etadi.
Bu maqolada siz quyidagilarni o‘rganasiz:
-
HTML forma yozish (Blade yordamida)
-
POST request yuborish
-
Serverda validatsiya qilish
-
Validatsiya xatoliklarini ko‘rsatish
📋 1. Forma yozish (Blade fayl)
<form action="{{ route('posts.store') }}" method="POST">
@csrf
<div>
<label>Sarlavha</label>
<input type="text" name="title" value="{{ old('title') }}">
@error('title')
<div style="color:red;">{{ $message }}</div>
@enderror
</div>
<div>
<label>Matn</label>
<textarea name="body">{{ old('body') }}</textarea>
@error('body')
<div style="color:red;">{{ $message }}</div>
@enderror
</div>
<button type="submit">Saqlash</button>
</form>
@csrf
— bu Laravel’ning CSRF himoyasi uchun zarur.
🧩 2. Marshruti sozlash (routes/web.php)
use App\Http\Controllers\PostController;
Route::get('/posts/create', [PostController::class, 'create'])->name('posts.create');
Route::post('/posts', [PostController::class, 'store'])->name('posts.store');
🧠 3. Kontrollerdagi validatsiya (PostController.php)
public function store(Request $request)
{
$validated = $request->validate([
'title' => 'required|min:3|max:255',
'body' => 'required|min:10',
]);
Post::create($validated);
return redirect()->route('posts.create')->with('success', 'Post muvaffaqiyatli saqlandi!');
}
validate()
metodi avtomatik tarzda foydalanuvchini xatolik bo‘lsa orqaga qaytaradi.
🛠 4. Validatsiya xatoliklarini ko‘rsatish
@error('field')
Blade direktivasi xatoliklarni avtomatik chiqaradi.
Masalan:
@error('title')
<div class="error">{{ $message }}</div>
@enderror
📎 Bonus: Xabarlar (success message)
Blade faylning yuqorisiga qo‘shish mumkin:
@if(session('success'))
<div style="color: green;">
{{ session('success') }}
</div>
@endif
📌 Xulosa
Laravel’da formalar bilan ishlash oddiy va xavfsiz. Siz foydalanuvchidan ma’lumot olasiz, uni validatsiya qilasiz va kerakli xabarlar orqali foydalanuvchini ogohlantirasiz.
🏁 6-qismda nimalar bo‘ladi?
6-qismda — Laravel’da routing, middlewareni chuqurroq tushunish haqida gaplashamiz. Ya’ni foydalanuvchini autentifikatsiyalash va yo‘llar orqali boshqarish.