Nếu bạn đang chuyển tham số vào tuyến đường thì đó không thể là yêu cầu POST, nó có định dạng được gọi là mã hóa url
Nếu bạn không biết về nó, chỉ cần sử dụng bất kỳ từ khóa nào thay vì đăng và để laravel đặt nó thành thích hợp, hãy kiểm tra các phương thức định tuyến thủ công đầu tiên
sử dụng phương pháp
Route::redirect['/here', '/there'];
12 như thế này,Route::any['users/{user}/folders/{folder}', 'FileController@listUserFolder'];
Tôi hy vọng nó sẽ giúp
Các route cơ bản nhất của Laravel chấp nhận một URI và một bao đóng, cung cấp một phương pháp xác định route và hành vi rất đơn giản và rõ ràng mà không cần các tệp cấu hình định tuyến phức tạp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
Tệp định tuyến mặc định
Tất cả các route của Laravel được xác định trong các tệp route của bạn, nằm trong thư mục
Route::redirect['/here', '/there'];
1. Các tệp này được tải tự động bởi Route::redirect['/here', '/there'];
2 của ứng dụng của bạn. Tệp Route::redirect['/here', '/there'];
3 xác định các tuyến dành cho giao diện web của bạn. Các tuyến này được chỉ định nhóm phần mềm trung gian Route::redirect['/here', '/there'];
4, cung cấp các tính năng như trạng thái phiên và bảo vệ CSRF. Các route trong Route::redirect['/here', '/there'];
5 không trạng thái và được chỉ định nhóm phần mềm trung gian Route::redirect['/here', '/there'];
6Đối với hầu hết các ứng dụng, bạn sẽ bắt đầu bằng cách xác định các tuyến đường trong tệp
Route::redirect['/here', '/there'];
3 của mình. Có thể truy cập các tuyến đường được xác định trong Route::redirect['/here', '/there'];
3 bằng cách nhập URL của tuyến đường đã xác định vào trình duyệt của bạn. Ví dụ: bạn có thể truy cập tuyến đường sau bằng cách điều hướng đến Route::redirect['/here', '/there'];
9 trong trình duyệt của mìnhuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
1Các tuyến đường được xác định trong tệp
Route::redirect['/here', '/there'];
5 được lồng trong một nhóm tuyến đường bởi use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
31. Trong nhóm này, tiền tố URI use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
32 được tự động áp dụng, do đó bạn không cần phải áp dụng nó theo cách thủ công cho mọi tuyến đường trong tệp. Bạn có thể sửa đổi tiền tố và các tùy chọn nhóm tuyến đường khác bằng cách sửa đổi lớp use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
31 của bạnCác phương thức bộ định tuyến khả dụng
Bộ định tuyến cho phép bạn đăng ký các tuyến đáp ứng với bất kỳ động từ HTTP nào
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
6Đôi khi bạn có thể cần phải đăng ký một tuyến đường đáp ứng nhiều động từ HTTP. Bạn có thể làm như vậy bằng cách sử dụng phương pháp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
34. Hoặc, bạn thậm chí có thể đăng ký một tuyến đáp ứng tất cả các động từ HTTP bằng cách sử dụng phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
35use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
9Lưu ý
Khi xác định nhiều tuyến chia sẻ cùng một URI, các tuyến sử dụng các phương thức36,
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
37,
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
38,
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
39,
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
40 và
Route::redirect['/here', '/there'];
41 phải được xác định trước các tuyến sử dụng phương pháp
Route::redirect['/here', '/there'];
35, . Điều này đảm bảo yêu cầu đến được khớp với đúng tuyến.
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
Tiêm phụ thuộc
Bạn có thể nhập gợi ý bất kỳ phụ thuộc nào theo yêu cầu của tuyến đường trong chữ ký gọi lại của tuyến đường của bạn. Các phụ thuộc đã khai báo sẽ tự động được giải quyết và đưa vào hàm gọi lại bởi bộ chứa dịch vụ Laravel. Ví dụ: bạn có thể nhập gợi ý lớp
Route::redirect['/here', '/there'];
45 để yêu cầu HTTP hiện tại tự động được đưa vào hàm gọi lại tuyến đường của bạnRoute::redirect['/here', '/there'];
0Bảo vệ CSRF
Hãy nhớ rằng, bất kỳ biểu mẫu HTML nào trỏ đến các tuyến đường
Route::redirect['/here', '/there'];
46, Route::redirect['/here', '/there'];
47, Route::redirect['/here', '/there'];
48 hoặc Route::redirect['/here', '/there'];
49 được xác định trong tệp tuyến đường Route::redirect['/here', '/there'];
4 phải bao gồm trường mã thông báo CSRF. Nếu không, yêu cầu sẽ bị từ chối. Bạn có thể đọc thêm về bảo vệ CSRF trong tài liệu CSRFRoute::redirect['/here', '/there'];
6Chuyển hướng tuyến đường
Nếu bạn đang xác định một tuyến chuyển hướng đến một URI khác, bạn có thể sử dụng phương thức
Route::redirect['/here', '/there'];
71. Phương pháp này cung cấp một lối tắt thuận tiện để bạn không phải xác định tuyến đường hoặc bộ điều khiển đầy đủ để thực hiện chuyển hướng đơn giảnRoute::redirect['/here', '/there'];
Theo mặc định,
Route::redirect['/here', '/there'];
71 trả về mã trạng thái Route::redirect['/here', '/there'];
73. Bạn có thể tùy chỉnh mã trạng thái bằng tham số thứ ba tùy chọnuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
3Hoặc, bạn có thể sử dụng phương thức
Route::redirect['/here', '/there'];
74 để trả về mã trạng thái Route::redirect['/here', '/there'];
75Route::redirect['/here', '/there'];
4Cảnh báo
Khi sử dụng tham số tuyến đường trong tuyến đường chuyển hướng, các tham số sau được bảo lưu bởi Laravel và không thể sử dụng được.76 và
Route::redirect['/here', '/there'];
77.
Route::redirect['/here', '/there'];
Xem các tuyến đường
Nếu tuyến đường của bạn chỉ cần trả về một chế độ xem, bạn có thể sử dụng phương thức
Route::redirect['/here', '/there'];
78. Giống như phương pháp Route::redirect['/here', '/there'];
44, phương pháp này cung cấp một lối tắt đơn giản để bạn không phải xác định một tuyến đường hoặc bộ điều khiển đầy đủ. Phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
100 chấp nhận URI làm đối số đầu tiên và tên chế độ xem làm đối số thứ hai. Ngoài ra, bạn có thể cung cấp một mảng dữ liệu để chuyển đến dạng xem dưới dạng đối số thứ ba tùy chọnRoute::redirect['/here', '/there'];
7Cảnh báo
Khi sử dụng tham số tuyến đường trong chế độ xem tuyến đường, các tham số sau được Laravel bảo lưu và không thể sử dụng được.100,
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
102,
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
77 và
Route::redirect['/here', '/there'];
104.
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
Danh sách tuyến đường
Lệnh
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
105 Artisan có thể dễ dàng cung cấp tổng quan về tất cả các tuyến đường được xác định bởi ứng dụng của bạnTheo mặc định, phần mềm trung gian định tuyến được gán cho từng tuyến sẽ không được hiển thị trong đầu ra
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
105; Bạn cũng có thể hướng dẫn Laravel chỉ hiển thị các tuyến đường bắt đầu bằng một URI nhất định
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
10Ngoài ra, bạn có thể hướng dẫn Laravel ẩn bất kỳ route nào được xác định bởi các gói của bên thứ ba bằng cách cung cấp tùy chọn
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
108 khi thực hiện lệnh use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
105use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
11Tương tự như vậy, bạn cũng có thể hướng dẫn Laravel chỉ hiển thị các route được xác định bởi các gói của bên thứ ba bằng cách cung cấp tùy chọn
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
110 khi thực hiện lệnh use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
105use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
12Tham số tuyến đường
Thông số bắt buộc
Đôi khi bạn sẽ cần nắm bắt các phân đoạn của URI trong tuyến đường của mình. Ví dụ: bạn có thể cần lấy ID của người dùng từ URL. Bạn có thể làm như vậy bằng cách xác định tham số tuyến đường
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
13Bạn có thể xác định bao nhiêu tham số tuyến đường theo yêu cầu của tuyến đường của bạn
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
14Các tham số định tuyến luôn được đặt trong _______ 1112 dấu ngoặc nhọn và phải bao gồm các ký tự chữ cái. Dấu gạch dưới [
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
113] cũng được chấp nhận trong tên tham số tuyến đường. Các tham số tuyến đường được đưa vào các cuộc gọi lại/bộ điều khiển tuyến đường dựa trên thứ tự của chúng - tên của các đối số bộ điều khiển/gọi lại tuyến đường không quan trọngTham số & Tiêm phụ thuộc
Nếu route của bạn có các phụ thuộc mà bạn muốn bộ chứa dịch vụ Laravel tự động đưa vào hàm gọi lại của route, bạn nên liệt kê các tham số route sau các phụ thuộc của mình
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
15Thông số tùy chọn
Đôi khi, bạn có thể cần chỉ định tham số tuyến đường có thể không phải lúc nào cũng có trong URI. Bạn có thể làm như vậy bằng cách đánh dấu
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
114 sau tên tham số. Đảm bảo cung cấp giá trị mặc định cho biến tương ứng của tuyến đườnguse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
16Ràng buộc biểu thức chính quy
Bạn có thể hạn chế định dạng của các tham số tuyến đường của mình bằng cách sử dụng phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
115 trên một thể hiện tuyến đường. Phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
115 chấp nhận tên của tham số và một biểu thức chính quy xác định cách ràng buộc tham sốuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
17Để thuận tiện, một số mẫu biểu thức chính quy thường được sử dụng có các phương thức trợ giúp cho phép bạn nhanh chóng thêm các ràng buộc mẫu vào các tuyến đường của mình
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
18Nếu yêu cầu đến không khớp với các ràng buộc mẫu định tuyến, phản hồi HTTP 404 sẽ được trả về
Ràng buộc toàn cầu
Nếu bạn muốn một tham số định tuyến luôn bị ràng buộc bởi một biểu thức chính quy nhất định, bạn có thể sử dụng phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
117. Bạn nên xác định các mẫu này trong phương pháp use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
118 của lớp Route::redirect['/here', '/there'];
2 của bạnuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
19Khi mẫu đã được xác định, nó sẽ tự động được áp dụng cho tất cả các tuyến sử dụng tên tham số đó
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
60Dấu gạch chéo được mã hóa
Thành phần định tuyến của Laravel cho phép tất cả các ký tự ngoại trừ
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
120 có mặt trong các giá trị tham số tuyến đường. Bạn phải cho phép rõ ràng use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
120 là một phần của trình giữ chỗ của bạn bằng cách sử dụng biểu thức chính quy điều kiện use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
115use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
61Cảnh báo
Dấu gạch chéo lên phía trước được mã hóa chỉ được hỗ trợ trong đoạn tuyến đường cuối cùng.
Tuyến đường được đặt tên
Các tuyến được đặt tên cho phép tạo URL hoặc chuyển hướng thuận tiện cho các tuyến cụ thể. Bạn có thể chỉ định tên cho tuyến đường bằng cách xâu chuỗi phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
123 vào định nghĩa tuyến đườnguse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
62Bạn cũng có thể chỉ định tên tuyến đường cho các hành động của bộ điều khiển
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
63Cảnh báo
Tên tuyến đường phải luôn là duy nhất.
Tạo URL cho các tuyến đường được đặt tên
Sau khi bạn đã gán tên cho một route nhất định, bạn có thể sử dụng tên của route khi tạo URL hoặc chuyển hướng thông qua các hàm trợ giúp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
124 và Route::redirect['/here', '/there'];
44 của Laraveluse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
64Nếu tuyến đường được đặt tên xác định tham số, bạn có thể chuyển tham số làm đối số thứ hai cho hàm
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
124. Các tham số đã cho sẽ tự động được chèn vào URL được tạo ở đúng vị trí của chúnguse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
65Nếu bạn truyền thêm tham số vào mảng, các cặp khóa/giá trị đó sẽ tự động được thêm vào chuỗi truy vấn của URL được tạo
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
66Lưu ý
Đôi khi, bạn có thể muốn chỉ định các giá trị mặc định trên toàn bộ yêu cầu cho các tham số URL, chẳng hạn như ngôn ngữ hiện tại. Để thực hiện điều này, bạn có thể sử dụng.
Kiểm tra tuyến đường hiện tại
Nếu bạn muốn xác định xem yêu cầu hiện tại có được định tuyến đến một tuyến đường đã đặt tên hay không, bạn có thể sử dụng phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
128 trên một phiên bản Tuyến đường. Ví dụ: bạn có thể kiểm tra tên tuyến đường hiện tại từ phần mềm trung gian tuyến đườnguse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
67Nhóm tuyến đường
Các nhóm tuyến đường cho phép bạn chia sẻ các thuộc tính tuyến đường, chẳng hạn như phần mềm trung gian, trên một số lượng lớn các tuyến đường mà không cần xác định các thuộc tính đó trên từng tuyến đường riêng lẻ
Các nhóm lồng nhau cố gắng "hợp nhất" các thuộc tính với nhóm mẹ của chúng một cách thông minh. Điều kiện Middleware và
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
115 được hợp nhất trong khi tên và tiền tố được thêm vào. Dấu phân cách không gian tên và dấu gạch chéo trong tiền tố URI được tự động thêm vào khi thích hợpPhần mềm trung gian
Để gán phần mềm trung gian cho tất cả các tuyến trong một nhóm, bạn có thể sử dụng phương pháp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
130 trước khi xác định nhóm. Phần mềm trung gian được thực thi theo thứ tự chúng được liệt kê trong mảnguse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
68Bộ điều khiển
Nếu một nhóm các tuyến đều sử dụng cùng một bộ điều khiển, bạn có thể sử dụng phương pháp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
131 để xác định bộ điều khiển chung cho tất cả các tuyến trong nhóm. Sau đó, khi xác định các tuyến đường, bạn chỉ cần cung cấp phương thức điều khiển mà chúng gọiuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
69Định tuyến tên miền phụ
Các nhóm định tuyến cũng có thể được sử dụng để xử lý định tuyến tên miền phụ. Tên miền phụ có thể được chỉ định tham số tuyến đường giống như URI tuyến đường, cho phép bạn nắm bắt một phần tên miền phụ để sử dụng trong tuyến đường hoặc bộ điều khiển của mình. Tên miền phụ có thể được chỉ định bằng cách gọi phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
132 trước khi xác định nhómuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
90Cảnh báo
Để đảm bảo có thể truy cập các tuyến miền phụ của bạn, bạn nên đăng ký các tuyến miền phụ trước khi đăng ký các tuyến miền gốc. Điều này sẽ ngăn các tuyến tên miền gốc ghi đè lên các tuyến tên miền phụ có cùng đường dẫn URI.
Tiền tố tuyến đường
Phương pháp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
133 có thể được sử dụng để thêm tiền tố vào mỗi tuyến đường trong nhóm với một URI nhất định. Ví dụ: bạn có thể muốn thêm tiền tố vào tất cả các URI tuyến đường trong nhóm bằng use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
134use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
91Tiền tố tên tuyến đường
Phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
123 có thể được sử dụng để thêm tiền tố vào mỗi tên tuyến đường trong nhóm bằng một chuỗi đã cho. Ví dụ: bạn có thể muốn thêm tiền tố vào tất cả các tên của tuyến đường được nhóm bằng use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
134. Chuỗi đã cho được thêm tiền tố vào tên tuyến đường chính xác như được chỉ định, vì vậy chúng tôi sẽ đảm bảo cung cấp ký tự use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
137 ở cuối trong tiền tốuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
92Ràng buộc mô hình tuyến đường
Khi thêm ID mô hình vào hành động của tuyến đường hoặc bộ điều khiển, bạn sẽ thường truy vấn cơ sở dữ liệu để truy xuất mô hình tương ứng với ID đó. Liên kết mô hình định tuyến Laravel cung cấp một cách thuận tiện để tự động đưa các phiên bản mô hình trực tiếp vào các tuyến đường của bạn. Ví dụ: thay vì thêm ID của người dùng, bạn có thể thêm toàn bộ phiên bản mô hình
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
138 khớp với ID đã choRàng buộc ngầm định
Laravel tự động giải quyết các mô hình Eloquent được xác định trong các route hoặc hành động của bộ điều khiển có tên biến gợi ý kiểu khớp với tên đoạn route. Ví dụ
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
93Vì biến
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
139 được gợi ý kiểu là mô hình use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
140 Eloquent và tên biến khớp với phân đoạn URI use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
141, nên Laravel sẽ tự động thêm đối tượng mô hình có ID khớp với giá trị tương ứng từ URI yêu cầu. Nếu không tìm thấy phiên bản mô hình phù hợp trong cơ sở dữ liệu, phản hồi HTTP 404 sẽ tự động được tạoTất nhiên, ràng buộc ngầm định cũng có thể thực hiện được khi sử dụng các phương thức của bộ điều khiển. Một lần nữa, lưu ý rằng phân đoạn URI
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
141 khớp với biến use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
139 trong bộ điều khiển chứa gợi ý kiểu use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
140use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
94Mô hình đã xóa mềm
Thông thường, liên kết mô hình ẩn sẽ không truy xuất các mô hình đã được. Tuy nhiên, bạn có thể hướng dẫn liên kết ẩn để truy xuất các mô hình này bằng cách xâu chuỗi phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
145 vào định nghĩa tuyến đường của bạnuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
93Tùy chỉnh khóa
Đôi khi bạn có thể muốn giải quyết các mô hình Eloquent bằng cách sử dụng một cột khác với cột
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
146. Để làm như vậy, bạn có thể chỉ định cột trong định nghĩa tham số tuyến đườnguse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
96Nếu bạn muốn liên kết mô hình luôn sử dụng cột cơ sở dữ liệu khác với
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
146 khi truy xuất một lớp mô hình nhất định, bạn có thể ghi đè phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
148 trên mô hình Eloquentuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
97Khóa tùy chỉnh & phạm vi
Khi liên kết ngầm nhiều Eloquent model trong một định nghĩa route, bạn có thể muốn mở rộng phạm vi của Eloquent model thứ hai sao cho nó phải là con của Eloquent model trước đó. Ví dụ: hãy xem xét định nghĩa tuyến đường này truy xuất một bài đăng trên blog bằng sên cho một người dùng cụ thể
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
98Khi sử dụng liên kết ẩn có khóa tùy chỉnh làm tham số định tuyến lồng nhau, Laravel sẽ tự động xác định phạm vi truy vấn để truy xuất mô hình lồng nhau bởi cha của nó bằng cách sử dụng các quy ước để đoán tên mối quan hệ trên cha. Trong trường hợp này, giả định rằng mô hình
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
138 có mối quan hệ tên là use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
150 [dạng số nhiều của tên tham số tuyến đường] có thể được sử dụng để truy xuất mô hình use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
151Nếu muốn, bạn có thể hướng dẫn Laravel xác định phạm vi liên kết "con" ngay cả khi khóa tùy chỉnh không được cung cấp. Để làm như vậy, bạn có thể gọi phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
152 khi xác định tuyến đường của mìnhuse Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
99Hoặc, bạn có thể hướng dẫn toàn bộ nhóm định nghĩa tuyến đường sử dụng các liên kết có phạm vi
Route::redirect['/here', '/there'];
00Tương tự, bạn có thể hướng dẫn rõ ràng Laravel không phạm vi ràng buộc bằng cách gọi phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
153Route::redirect['/here', '/there'];
01Tùy chỉnh hành vi mô hình bị thiếu
Thông thường, phản hồi HTTP 404 sẽ được tạo nếu không tìm thấy mô hình liên kết ngầm. Tuy nhiên, bạn có thể tùy chỉnh hành vi này bằng cách gọi phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
154 khi xác định tuyến đường của mình. Phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
154 chấp nhận một bao đóng sẽ được gọi nếu không tìm thấy mô hình ràng buộc ngầmRoute::redirect['/here', '/there'];
02Liên kết ẩn Enum
PHP8. 1 giới thiệu hỗ trợ cho Enums. Để khen ngợi tính năng này, Laravel cho phép bạn gõ gợi ý một chuỗi Enum hỗ trợ trên định nghĩa tuyến đường của bạn và Laravel sẽ chỉ gọi tuyến đường nếu đoạn tuyến đường đó tương ứng với một giá trị Enum hợp lệ. Nếu không, phản hồi HTTP 404 sẽ tự động được trả về. Ví dụ: đưa ra Enum sau
Bạn có thể xác định tuyến đường sẽ chỉ được gọi nếu đoạn tuyến đường
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
156 là use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
157 hoặc use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
158. Nếu không, Laravel sẽ trả về phản hồi HTTP 404Route::redirect['/here', '/there'];
03Ràng buộc rõ ràng
Bạn không bắt buộc phải sử dụng độ phân giải mô hình dựa trên quy ước, ẩn của Laravel để sử dụng liên kết mô hình. Bạn cũng có thể xác định rõ ràng cách các tham số định tuyến tương ứng với các mô hình. Để đăng ký một ràng buộc rõ ràng, hãy sử dụng phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
159 của bộ định tuyến để chỉ định lớp cho một tham số nhất định. Bạn nên xác định các ràng buộc mô hình rõ ràng của mình khi bắt đầu phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
118 của lớp use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
31 của bạnRoute::redirect['/here', '/there'];
04Tiếp theo, xác định tuyến đường có chứa tham số
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
141use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
93Vì chúng tôi đã ràng buộc tất cả các tham số
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
141 với mô hình use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
140, nên một thể hiện của lớp đó sẽ được đưa vào tuyến đường. Vì vậy, ví dụ, một yêu cầu tới use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
165 sẽ đưa thể hiện use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
138 từ cơ sở dữ liệu có ID là use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
167Nếu không tìm thấy phiên bản mô hình phù hợp trong cơ sở dữ liệu, phản hồi HTTP 404 sẽ được tạo tự động
Tùy chỉnh logic độ phân giải
Nếu bạn muốn xác định logic giải quyết ràng buộc mô hình của riêng mình, bạn có thể sử dụng phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
168. Việc đóng mà bạn chuyển đến phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
169 sẽ nhận giá trị của phân đoạn URI và sẽ trả về thể hiện của lớp sẽ được đưa vào tuyến đường. Một lần nữa, việc tùy chỉnh này sẽ diễn ra theo phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
118 của ứng dụng của bạn use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
31Route::redirect['/here', '/there'];
06Ngoài ra, bạn có thể ghi đè phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
172 trên mô hình Eloquent của mình. Phương thức này sẽ nhận giá trị của đoạn URI và sẽ trả về thể hiện của lớp sẽ được đưa vào tuyến đườngRoute::redirect['/here', '/there'];
07Nếu một tuyến đường đang sử dụng, phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
173 sẽ được sử dụng để giải quyết ràng buộc con của mô hình gốcRoute::redirect['/here', '/there'];
08Tuyến dự phòng
Sử dụng phương pháp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
174, bạn có thể xác định một tuyến đường sẽ được thực hiện khi không có tuyến đường nào khác phù hợp với yêu cầu đến. Thông thường, các yêu cầu chưa được xử lý sẽ tự động hiển thị trang "404" thông qua trình xử lý ngoại lệ của ứng dụng của bạn. Tuy nhiên, vì bạn thường xác định tuyến đường use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
175 trong tệp Route::redirect['/here', '/there'];
3 của mình, nên tất cả phần mềm trung gian trong nhóm phần mềm trung gian Route::redirect['/here', '/there'];
4 sẽ áp dụng cho tuyến đường. Bạn có thể tự do thêm phần mềm trung gian bổ sung vào tuyến đường này nếu cầnRoute::redirect['/here', '/there'];
09Cảnh báo
Tuyến dự phòng phải luôn là tuyến cuối cùng được đăng ký bởi ứng dụng của bạn.
Giới hạn tỷ lệ
Xác định giới hạn tỷ lệ
Laravel bao gồm các dịch vụ giới hạn tốc độ mạnh mẽ và có thể tùy chỉnh mà bạn có thể sử dụng để hạn chế lưu lượng truy cập cho một tuyến đường hoặc nhóm tuyến đường nhất định. Để bắt đầu, bạn nên xác định cấu hình bộ giới hạn tốc độ đáp ứng nhu cầu của ứng dụng của bạn. Thông thường, điều này nên được thực hiện trong phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
178 của lớp Route::redirect['/here', '/there'];
2 trong ứng dụng của bạnBộ giới hạn tốc độ được xác định bằng phương pháp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
181 của mặt tiền use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
180. Phương thức use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
181 chấp nhận tên bộ giới hạn tốc độ và bao đóng trả về cấu hình giới hạn sẽ áp dụng cho các tuyến đường được gán cho bộ giới hạn tốc độ. Cấu hình giới hạn là các thể hiện của lớp use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
183. Lớp này chứa các phương thức "trình tạo" hữu ích để bạn có thể nhanh chóng xác định giới hạn của mình. Tên bộ giới hạn tốc độ có thể là bất kỳ chuỗi nào bạn muốnRoute::redirect['/here', '/there'];
60Nếu yêu cầu gửi đến vượt quá giới hạn tốc độ đã chỉ định, phản hồi với mã trạng thái HTTP 429 sẽ tự động được Laravel trả về. Nếu bạn muốn xác định phản hồi của riêng mình sẽ được trả về theo giới hạn tỷ lệ, bạn có thể sử dụng phương pháp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
184Route::redirect['/here', '/there'];
61Vì các lệnh gọi lại của bộ giới hạn tốc độ nhận phiên bản yêu cầu HTTP đến, nên bạn có thể tự động xây dựng giới hạn tốc độ phù hợp dựa trên yêu cầu đến hoặc người dùng được xác thực
Route::redirect['/here', '/there'];
62Giới hạn tốc độ phân đoạn
Đôi khi bạn có thể muốn phân đoạn giới hạn tỷ lệ theo một số giá trị tùy ý. Ví dụ: bạn có thể muốn cho phép người dùng truy cập một tuyến đường nhất định 100 lần mỗi phút cho mỗi địa chỉ IP. Để thực hiện điều này, bạn có thể sử dụng phương pháp
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
185 khi xây dựng giới hạn tỷ lệ của mìnhRoute::redirect['/here', '/there'];
63Để minh họa tính năng này bằng một ví dụ khác, chúng tôi có thể giới hạn quyền truy cập vào tuyến đường ở mức 100 lần mỗi phút cho mỗi ID người dùng được xác thực hoặc 10 lần mỗi phút cho mỗi địa chỉ IP cho khách
Route::redirect['/here', '/there'];
64Nhiều giới hạn tốc độ
Nếu cần, bạn có thể trả về một mảng giới hạn tốc độ cho cấu hình bộ giới hạn tốc độ nhất định. Mỗi giới hạn tốc độ sẽ được đánh giá cho tuyến đường dựa trên thứ tự chúng được đặt trong mảng
Route::redirect['/here', '/there'];
65Đính kèm các bộ giới hạn tỷ lệ vào các tuyến đường
Bộ giới hạn tốc độ có thể được gắn vào các tuyến hoặc nhóm tuyến sử dụng phần mềm trung gian
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
186. Phần mềm trung gian ga chấp nhận tên của bộ giới hạn tốc độ mà bạn muốn gán cho tuyến đườngRoute::redirect['/here', '/there'];
66Điều tiết với Redis
Thông thường, phần mềm trung gian
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
186 được ánh xạ tới lớp use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
188. Ánh xạ này được xác định trong nhân HTTP của ứng dụng của bạn [use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
189]. Tuy nhiên, nếu bạn đang sử dụng Redis làm trình điều khiển bộ đệm cho ứng dụng của mình, bạn có thể muốn thay đổi ánh xạ này để sử dụng lớp use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
190. Lớp này hiệu quả hơn trong việc quản lý giới hạn tốc độ bằng RedisRoute::redirect['/here', '/there'];
67Giả mạo phương thức biểu mẫu
Biểu mẫu HTML không hỗ trợ các hành động
Route::redirect['/here', '/there'];
47, Route::redirect['/here', '/there'];
48 hoặc Route::redirect['/here', '/there'];
49. Vì vậy, khi xác định các tuyến đường Route::redirect['/here', '/there'];
47, Route::redirect['/here', '/there'];
48 hoặc Route::redirect['/here', '/there'];
49 được gọi từ biểu mẫu HTML, bạn sẽ cần thêm trường use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
197 ẩn vào biểu mẫu. Giá trị được gửi với trường use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
197 sẽ được sử dụng làm phương thức yêu cầu HTTPRoute::redirect['/here', '/there'];
68Để thuận tiện, bạn có thể sử dụng chỉ thị ________ 1199 Blade để tạo trường đầu vào ________ 1197
Route::redirect['/here', '/there'];
69Truy cập tuyến đường hiện tại
Bạn có thể sử dụng các phương thức
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
601, use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
602 và use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
603 trên mặt tiền use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
604 để truy cập thông tin về tuyến đường xử lý yêu cầu đếnRoute::redirect['/here', '/there'];
0Bạn có thể tham khảo tài liệu API cho cả lớp cơ bản của Route facade và Route instance để xem xét tất cả các phương thức có sẵn trên bộ định tuyến và các lớp route
Chia sẻ tài nguyên nguồn gốc chéo [CORS]
Laravel có thể tự động trả lời các yêu cầu HTTP CORS
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
605 với các giá trị mà bạn định cấu hình. Tất cả cài đặt CORS có thể được định cấu hình trong tệp cấu hình use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
606 của ứng dụng của bạn. Các yêu cầu use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
605 sẽ tự động được xử lý bởi phần mềm trung gian use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
608 được bao gồm theo mặc định trong ngăn xếp phần mềm trung gian toàn cầu của bạn. Ngăn xếp phần mềm trung gian toàn cầu của bạn nằm trong nhân HTTP của ứng dụng [use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
189]Lưu ý
Để biết thêm thông tin về CORS và tiêu đề CORS, vui lòng tham khảo.
Bộ nhớ đệm định tuyến
Khi triển khai ứng dụng của bạn vào sản xuất, bạn nên tận dụng route cache của Laravel. Sử dụng bộ đệm tuyến đường sẽ giảm đáng kể lượng thời gian cần thiết để đăng ký tất cả các tuyến đường của ứng dụng của bạn. Để tạo bộ đệm tuyến đường, hãy thực hiện lệnh Artisan
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
610Sau khi chạy lệnh này, tệp tuyến đường được lưu trong bộ nhớ cache của bạn sẽ được tải theo mọi yêu cầu. Hãy nhớ rằng, nếu bạn thêm bất kỳ tuyến đường mới nào, bạn sẽ cần tạo bộ đệm tuyến đường mới. Do đó, bạn chỉ nên chạy lệnh
use Illuminate\Support\Facades\Route;
Route::get['/greeting', function [] {
610 trong quá trình triển khai dự án của mình