Laravel: 0 dan Pro gacha – 6-qism: Routing va Middleware

🔁 Kirish

Routing – Laravel’ning eng asosiy qismlaridan biri bo‘lib, so‘rov (request) kelganda qaysi controller yoki view ishlatilishini belgilaydi.

Middleware esa — bu so‘rovlar bilan ishlovchi oraliq qatlam bo‘lib, foydalanuvchini tekshiradi (masalan, u login bo‘lganmi yoki adminmi).

Bu maqolada siz quyidagilarni o‘rganasiz:

  • Routing turlari

  • Named routes

  • Route guruhlari (group)

  • Middleware tushunchasi va uni qo‘llash


🛣 1. Oddiy routing

routes/web.php faylida quyidagicha yoziladi:

Route::get('/', function () {
    return view('welcome');
});

Yoki controller orqali:

use App\Http\Controllers\BlogController;

Route::get('/blog', [BlogController::class, 'index']);

🔖 2. Named routes

Bu yo‘llarni route() funksiyasi orqali chaqirish uchun qulay:

Route::get('/contact', [PageController::class, 'contact'])->name('contact');

<a href="{{ route('contact') }}">Bog‘lanish</a>

Route::middleware('auth')->prefix('admin')->group(function () {
    Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('admin.dashboard');
    Route::resource('/posts', AdminPostController::class);
});
 

🧱 4. Middleware nima?

Middleware – bu request va response oralig‘ida ishlovchi funksiya. Masalan: auth middleware foydalanuvchi login bo‘lmagan bo‘lsa, uni login sahifasiga yo‘naltiradi.


🔐 5. Middleware bilan yo‘lni himoyalash

Route::get('/profile', [UserController::class, 'profile'])->middleware('auth');
Yoki route guruh bilan:

Route::middleware(['auth', 'verified'])->group(function () {
    Route::get('/dashboard', function () {
        return view('dashboard');
    });
});
 

🧩 6. Custom middleware yaratish

php artisan make:middleware CheckAdmin
app/Http/Middleware/CheckAdmin.php:

public function handle($request, Closure $next)
{
    if (auth()->user()?->is_admin) {
        return $next($request);
    }

    abort(403, 'Sizga ruxsat yo‘q!');
}
 

Kernel.php faylga qo‘shing:

'admin' => \App\Http\Middleware\CheckAdmin::class,
 

Endi ishlatish:

Route::get('/admin-panel', [AdminController::class, 'panel'])->middleware('admin');

📌 Xulosa

Laravel’da routing va middlewarelar ilova xavfsizligini va strukturaviy boshqaruvni soddalashtiradi. Ayniqsa, user rollarini ajratishda middleware juda qulay vositadir.


🏁 7-qismda nimalar bo‘ladi?

7-qismdaLaravel’da Authentication va Register tizimini sozlash haqida yozamiz. Bu orqali siz foydalanuvchilarni ro‘yxatdan o‘tkazish va tizimga kiritishni o‘rganasiz.