Routing huunganisha URLs na mbinu za HTTP na msimbo unaozishughulikia. Katika Laravel unabainisha routes ndani ya faili za route (routes/web.php, routes/api.php) kwa kutumia facade ya Route, ukielekeza kila moja kwenye closure au method ya controller.
Routes za msingi
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', fn() => 'Home'); // GET / → closure
Route::get('/users', [UserController::class, 'index']); // → controller method
Route::post('/users', [UserController::class, 'store']); // POST
Route::put('/users/{id}', [UserController::class, 'update']);
Route::delete('/users/{id}', [UserController::class, 'destroy']);
Kila mbinu ya HTTP ina helper yake ya Route::. Routes huelekeza kwenye closure (kwa hali rahisi) au, mara nyingi zaidi, kwenye jozi ya [Controller::class, 'method'].
Parameters za route
Route::get('/users/{id}', function ($id) { // {id} captured and passed in
return User::find($id);
});
Route::get('/posts/{post?}', fn($post = null) => ...); // optional parameter
Named routes (rejelea routes kwa jina, si URL)
Route::get('/profile', [ProfileController::class, 'show'])->name('profile');
// generate URLs by NAME — refactor-safe (change the URL in one place)
route('profile'); // → "/profile"
redirect()->route('profile');
// in Blade: <a href="{{ route('profile') }}">Profile</a>
Named routes hukuruhusu kurejelea routes kwa jina kila mahali badala ya kuandika URLs moja kwa moja — hivyo kubadilisha URL hakuvunji viungo (mazoea ya DRY yanayoweza kudumishwa).
Makundi ya routes na resource routes
// group routes with shared middleware/prefix
Route::middleware('auth')->prefix('admin')->group(function () {
Route::get('/dashboard', ...); // → /admin/dashboard, requires auth
});
// resource routes — all 7 RESTful routes for a controller at once
Route::resource('posts', PostController::class);
// → index, create, store, show, edit, update, destroy automatically
Route::resource huzalisha seti kamili ya routes za RESTful kwa controller — msimbo mdogo kwa CRUD ya kawaida.
Kwa nini ni muhimu
Routing ni msingi kwa kila programu ya Laravel — inabainisha URLs za programu yako na kuziunganisha na vishughulikiaji, hivyo kuielewa ni maarifa muhimu ya kila siku kwa kujenga endpoint yoyote.
Kujua jinsi ya kubainisha routes kwa kila mbinu ya HTTP, kunasa parameters, kuelekeza routes kwenye controllers, na kuzipanga kwa makundi (kwa middleware/prefix za pamoja) ni muhimu kwa kuunda muundo wa programu.
Mazoea mawili ni muhimu hasa: named routes (kurejelea routes kwa jina badala ya URLs zilizoandikwa moja kwa moja — ushindi muhimu wa udumishaji unaozuia viungo kuvunjika wakati URLs zinabadilika), na resource routes (Route::resource, ambayo huzalisha routes zote za kawaida za RESTful kwa controller kwa mstari mmoja — kipengele kikubwa cha tija kwa CRUD).
Routing huunganisha sehemu ya kuingilia (URLs) na mantiki ya programu (controllers), na kuifanya kuwa nyenzo ya msingi na ya lazima kujua kwa kujenga programu za Laravel zilizopangwa vizuri, na kanuni za named-route na resource-route zinaonyesha msisitizo wa framework juu ya muundo safi, wa DRY, na wa RESTful.
