+2

Cùng nhau học Router Laravel 10.x (phần 1)

Mayfest2023

Mở đầu

Chào các bạn hôm nay chúng mình sẽ tìm hiểu về Router trong Laravel 10.x phần 1 🥰🥰🥰

1. Cấu trúc thư mục

Tất cả file router trong laravel sẽ được đặt trong thư mục routes

image.png Trong folder routes có 2 file api.php và web.php trong đó:

  • File api.php được dùng để định nghĩa router cho api

  • File web.php được dùng để định nghĩa router cho web

Laravel sẽ cấu hình 2 file trên ở trong file App\Providers\RouteServiceProvider

image.png Các bạn cũng có thể custom thêm hoặc sửa tùy theo nhu cầu của mỗi người

Ví dụ: Mình sẽ thêm 1 router trong file App\Providers\RouteServiceProvider nó sẽ có đường dẫn là routes/web2.php như trong ảnh ở dưới

image.png

Tiếp theo các bạn sẽ vào thư mục routes thêm 1 file có tên là web2.php

image.png Bạn copy code dưới đây vào file web2.php vừa tạo:

<?php

use Illuminate\Support\Facades\Route;

Route::get('/web2', function () {
    return 'Xin chào đây là web 2';
});

Tiếp theo các bạn mở trình duyệt truy cập vào đường dẫn http://localhost:8000/web2 sẽ thấy image.png

2. Các method router

Laravel cũng cấp cho chúng ta 6 phương thức là: get, post, put, patch, delete, options

  • Get: là phương thức dùng để truy cập đến tài nguyên của server mà không làm thay đổi dữ liệu server, ở ví dụ trên mình có sử dụng phương thức get để truy cập đến đường dẫn http://localhost:8000/web2

image.png

  • Post: là phương thức được sử dụng để tạo tài dữ liệu mới
  • Put: là phương thức được sử dụng để cập nhật dữ liệu
  • Put: là phương thức được sử dụng để cập nhật dữ liệu
  • Patch: là phương thức được sử dụng gửi dữ liệu mà bạn cần sửa đổi và không ảnh hưởng đến các phần khác của dữ liệu
  • Delete: là phương thức XÓA sử dụng để xóa dữ liệu Ngoài ra Laravel còn cung cấp cho chúng ta một phương thức matchany, view, trong match sẽ định nghĩa nhưng phương thức mà bạn cần dùng. Ví dụ:
Route::match(['get', 'put', 'post'], '/web2', function () {
    // ...
});

Tức là khi màn truy cập với đường dẫn là http://localhost:8000/web2 bạn có thể dử dụng được 3 phương thức get, post, put nó là cách viết ngắn gọn mà laravel hỗ trợ bạn:

Nếu bạn không muốn dùng phương thức match bạn cũng có thể viết tách ra thành 3 route:

Route::get('/web2', function () {
    return 'Đây là phương thức get';
});

Route::post('/web2', function () {
    return 'Đây là phương thức post';
});

Route::put('/web2', function () {
    return 'Đây là phương thức put';
});

Với any cũng khá giống với method match ở trên và nó sẽ sử dụng với mọi phương thức get, post, put, patch, delete

Route::any('/web2', function () {
    return 'Phương thức any';
});

Method View nếu bạn chỉ cần trả ra 1 view bạn có thể sử dụng phương thức rút gọn này:

Ví dụ:

Trong folder resources/views bạn tạo 1 file là view.blade.php sau đó bạn thêm nội dung

<h1>Đây là view</h1>

Tiếp đến trong folder routes/web.php bạn thêm 1 route:

Route::view('/view', 'view');

Bây giờ bạn truy cập với đường link http://localhost:8000/view bạn sẽ thấy

image.png

Method Route:view nó sẽ là viết tắt của đoạn code sau:

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

3. Các command tương tác với route

Command php artisan route:list các bạn dùng để kiểm tra chi tiết tất cả các route đang có trong website của bạn đang sử dụng method nào đang sử dụng Middleware

image.png

Các bạn có thể thấy ở bảng trên sau khi mình sử dụng command php artisan route:list route any có phương thức là GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS. Dưới đây là route any được mình định nghĩa

Route::any('/any', function () {
    return 'Đây là method any';
});

Bạn cũng có thể kiểm tra 1 route nhất định sử dụng command php artisan route:list --path=any trong đó any là tên route của bạn: Ví dụ:

Route::get('/web2', function () {
    return 'Đây là web 2';
});

Mình muốn kiểm tra route có tên là web2 bạn chỉ cần sử dụng command php artisan route:list --path=web2

image.png

Kết luận:

Ở bài này mình cũng đã hướng dẫn cho các bạn cơ bản về cầu trúc thư mục, các method, các command cơ bản nhất trong Route Laravel 10.x phần 1. Mong các bạn ủng hộ và nhận xét góp ý để mình có thể viết bài hay hơn trong những bài hướng dẫn tiếp theo


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí