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-qismdaLaravel’da routing, middlewareni chuqurroq tushunish haqida gaplashamiz. Ya’ni foydalanuvchini autentifikatsiyalash va yo‘llar orqali boshqarish.