Học Laravel 10 cơ bản – Bài 2: Routing trong Laravel 10

Hướng dẫn Laravel 10 cho người mới: Routing trong Laravel 10

1. Routing là gì?

  • Routing trong Laravel là nơi định nghĩa các URL (đường dẫn) mà ứng dụng sẽ phản hồi.

  • Khi người dùng truy cập 1 URL, Laravel sẽ kiểm tra route tương ứng và gọi Controller / function xử lý.

👉 Các route được khai báo trong thư mục routes/:

  • web.php: cho website (trả về HTML, Blade template).

  • api.php: cho API (trả về JSON).

  • console.php: cho lệnh Artisan.

  • channels.php: cho broadcast channel (WebSocket).


2. Route cơ bản

Mở file routes/web.php và thêm route:

use Illuminate\Support\Facades\Route; 
//Route::get() → định nghĩa route GET.
Route::get('/', function () {    //'/' → URL gốc (http://localhost:8000/)
     //Function trả về string, view, hoặc JSON.
     return 'Xin chào Laravel 10!'; 
});

 

👉 Các HTTP method hỗ trợ:

Route::get('/demo', ...); // GET 
Route::post('/demo', ...); // POST 
Route::put('/demo', ...); // PUT 
Route::delete('/demo', ...); // DELETE 
Route::patch('/demo', ...); // PATCH


3. Route trả về View

Route::get('/hello', function () { 
    //resources/views/welcome.blade.php 
    return view('welcome'); #view('welcome') → trả về Blade template
});


4. Route có tham số

Tham số bắt buộc:

Route::get('/user/{id}', function ($id) { 
    return "User ID: " . $id; 
});

👉 Truy cập: http://localhost:8000/user/5 → hiển thị User ID: 5.

Tham số tùy chọn:

Route::get('/post/{id?}', function ($id = null) {    //👉 /post → Danh sách post
    return $id ? "Post ID: $id" : "Danh sách post"; //👉 /post/10 → Post ID: 10
});


Ràng buộc kiểu dữ liệu (Regex):

Route::get('/product/{id}', function ($id) { 
    return "Product ID: $id"; 
})->where('id', '[0-9]+');

 


5. Đặt tên cho Route

Route::get('/profile', function () {
    return "Trang cá nhân";
})->name('profile');

👉 Truy cập bằng tên route trong Blade: <a href="{{%20route('profile')%20}}">Profile</a>



6. Route Group

Nhóm nhiều route chung tiền tố (prefix) hoặc middleware:

Route::prefix('admin')->group(function () { 
Route::get('/dashboard', function () { 
       return "Admin Dashboard"; 
   }); 
Route::get('/users', function () { 
       return "Quản lý User"; 
   }); 
});

 

👉 URL sẽ là:

  • /admin/dashboard

  • /admin/users


7. Route gọi Controller

Thay vì viết logic trong route, ta tách ra Controller.

use App\Http\Controllers\UserController; 
Route::get('/users', [UserController::class, 'index']);

 

👉 Tạo controller:

php artisan make:controller UserController //File app/Http/Controllers/UserController.php

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 

class UserController extends Controller { 
     public function index() { 
           return "Danh sách User"; 
     } 
}


8. Route trong API

Trong routes/api.php:

Route::get('/posts', function () { 
    return response()->json(['id' => 1, 'title' => 'Hello API']); 
    //👉 Kết quả JSON: { "id": 1, "title": "Hello API" }
});


9. Artisan hỗ trợ route

  • Liệt kê tất cả routes:

php artisan route:list

 


Tóm lại

Trong bài này bạn đã học:

  • Route cơ bản (GET, POST, PUT, DELETE).

  • Route trả về view, JSON.

  • Route có tham số (bắt buộc, tùy chọn, regex).

  • Đặt tên route & sử dụng trong Blade.

  • Route group với prefix, middleware.

  • Route gắn với Controller.

  • API routes trong api.php.

👉 Ở Bài 3,  chúng ta sẽ cùng tìm hiểu cách tạo ControllerRequest để xử lý dữ liệu trong Laravel