Laravel 5.5 cung cấp 4 route file api.php
, channels.php
, console.php
và web.php
.
Route web.php
dành cho giao diện web, api.php
thì cho các API, console.php
dành cho việc đăng kí artisan command còn channels.php
dành cho mục đích broadcasting.
Bài post giúp được gì?
Nếu bạn đang làm một app nhỏ và không có quá nhiều route để hoàn thiện app thì web.php
là đủ. Nhưng nếu như bạn có khoảng hơn 100 routes, ví dụ để dành cho Admin, cho khách hàng, cho các loại user (liên quan đến auth) và các route phổ biến có sẵn cho mọi visitor thì việc giữ tất cả các route với nhau vào 1 route file đơn sẽ khiến bạn không quản lý nổi các route của mình nữa.

Dưới đây là một giải pháp nhanh gọn lẹ dành cho bạn
Giả sử như chúng ta có 3 route :
- Cho cấp admin
- Cho cấp user [ có thể signup, login, quản lý profile v.v ]
- Các public route [ home, blog, contact page v.v ]
Bây giờ chúng ta sẽ tạo 2 thư mục trong routes

Các route directory đã đổi trong laravel 5.5
routes/web
— các route liên quan đến đường dẫn front-end chẳng hạn
routes/api
— các route liên quan đến API
Chúng ta vẫn để nguyên các route channels.php
và console.php
bên ngoài.
Tạo một file mới như admin.php
trong folder web sẽ chứa các route liên quan đến admin.
Tạo user.php
trong đó đại diện cho mọi route liên quan đến cấp user.
Phần mẹo tối ưu
Mở Providers/RouteServiceProvider.php
— file này phụ trách khởi tạo tất cả các route của app. Check method map()
để hiểu được cách nó nhận diện các route file khác nhau.
Check lại các method mapApiRoutes()
và mapWebRoutes()
, chúng chỉ trỏ vào đường dẫn mặc định của web.php
và api.php
tuy nhiên chúng ta đã move nó vào thư mục khác nên vì thế hãy thay đổi lại bằng cách khai báo:
Thay đổi base_path() của 2 method trên
admin.php
& user.php
trong RouteServiceProvider.php
Tạo các method mới cho cả hai loại route
Chỉ cần call chúng từ method map()
của RouteServiceProvider
.
Update lần lượt các method map()
Bước cuối cùng
Mở routes/web/user.php
và add thêm một số test route
Trỏ về your-laravel.dev/user/test
và bạn đã hoàn thành rồi.
Vậy là bạn đã tách các route khác nhau của app mình thành công rồi, đơn giản và dễ quản lý.
Tham khảo thêm các vị trí tuyển dụng Laravel lương cao