Route trong Laravel 8

Routing trong Larvel cũng giống như các framework khác có chức năng là định tuyến ra các action cho các sự kiện tương ứng. Ví dụ như khi truy cập vào đường dẫn welcome thì sẽ xử lí hành động nào hoặc là khi run command abc sẽ thực thi hành động nào .. Chính vì vậy bài học này chúng ta sẽ không tìm hiểu về khái niệm route mà chỉ tập trung tìm hiểu chi tiết về cách sử dụng route trong Laravel 8 các bạn nhé!

Các loại route chính trong Laravel 8

Trong Laravel 8 hỗ trợ chúng ta 3 loại route chính đó là:

  • Route dành cho web.
  • Route dành cho cli (commnad).
  • Route dành cho broadcast.

Chúng ta sẽ lần lượt tìm hiểu về các loại route này trong bài này và các bài tiếp theo nữa các bạn nhé

Route dành cho web.

Mặc định Laravel 8 cho phép khai báo các route dành cho web trong hai file 

  • routes/web.php 
  • hoặc routes/api.php.

 Trong đó, nếu bạn khai báo route trong routes/api.php thì các path sẽ được thêm tiền tố api ở phía trước.

Ngoài ra nếu như các bạn muốn khai báo route trong file khác thì bạn cần khai báo file đó trong file  app/Providers/RouteServiceProvider.php.

Route trong Laravel hỗ trợ chúng ta định nghĩa cho tất cả các HTTP request method như:

  • Route::get($uri, $callback) - nhận resquest với phương thức GET.
  • Route::post($uri, $callback) - nhận resquest với phương thức POST.
  • Route::put($uri, $callback) - nhận resquest với phương thức PUT.
  • Route::patch($uri, $callback) - nhận resquest với phương thức PATCH.
  • Route::delete($uri, $callback) - nhận resquest với phương thức DELETE.
  • Route::options($uri, $callback) - nhận resquest với phương thức OPTIONS.
  • Route::match($methods, $uri, $callback) - một route hỗ trợ nhiều method
  • Route::any($uri, $callback)  - nhận tất cả các HTTP method với phương thức any

Trong đó

  • - $uri là path mà bạn muốn route xử lí.
  • - $callback là một callback, callable hoặc một array chứa thông tin controller và phương thức tác động đến.
  • - $methods là một array chứa các phương thức mà bạn muốn route này xử lí.

Ví dụ minh họa khai báo route trong web.php :

Khai báo route welcome sẽ trả về chuỗi "Xin chào" khi truy cập vào đường dẫn http://localhost:8000/welcome

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

Route::get('welcome', function () {
    return "Xin chào";
});

Ví dụ minh họa khai báo route trong api.php :

Mở file  routes/api.php thêm vào đoạn code sau

Route::get('greeting', function () {
    return "Xin chào";
});

Trong ví dụ trên vì mình đặt trong file routes/api.php nên path sẽ tự động thêm api vào trước chính vì thế mình không cần điền api vào nữa.

Ngoài ra Laravel cũng hỗ trợ thêm các loại route khác như:

Route redirect

Route::redirect($uri, $redirectTo, $status)

Trong đó: 

  • $uri là path mà bạn muốn xử lí.
  • $redirectTo là path mà bạn muốn redirect đến.
  • $status là http status mà các bạn muốn thiết lập, mặc định $status là 302

Route view 

Route::view($uri, $viewName, $data)

Trong đó:

  • $uri là path mà bạn muốn xử lí.
  • $viewName là view mà bạn muốn render.
  • $data data mà bạn muốn truyền vào view. 

Bạn còn có thể truyền thêm 2 tham số khác vào đó là http status và header.

Chú ý: Route view chỉ work với HTTP request GET hoặc HEAD.

Ngoài ra bạn cũng có thể group các route lại để tiện xử lí qua phương thức group.

Lời kết.

Laravel 8 hỗ trợ route rất đa dạng thế nên trong khuôn khổ 1 bài viết này chúng tả chỉ tìm hiểu về route web trong Laravel 8 mà thôi. Hẹn các bạn ở bài sau nhé!

Bình luận