Laravel 8 404 không tìm thấy, nhưng tuyến đường tồn tại
Các route cơ bản nhất của Laravel chấp nhận URI và 2, cung cấp một phương pháp xác định route rất đơn giản và rõ ràng Show
Tệp định tuyến mặc địnhTấ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 3. Các tệp này được tự động tải bởi khung. Tệp 4 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 5, cung cấp các tính năng như trạng thái phiên và bảo vệ CSRF. Các tuyến trong 6 là không trạng thái và được chỉ định nhóm phần mềm trung gian 7 Đố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 4 của mình. Có thể truy cập các tuyến đường được xác định trong 4 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 0 trong trình duyệt của mìnhCác tuyến đường được xác định trong tệp 6 được lồng trong một nhóm tuyến đường bởi 2. Trong nhóm này, tiền tố URI 3 đượ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 2 của mìnhCác phương thức bộ định tuyến khả dụngBộ đị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 4Đô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 5. 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 6 7Bảo vệ CSRFBất kỳ biểu mẫu HTML nào trỏ đến các tuyến đường 7, 8 hoặc 9 được xác định trong tệp tuyến đường 5 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 CSRF Chuyển hướng tuyến đườngNế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 31. 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ản
Xem các tuyến đườngNế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 pháp 32. Giống như phương pháp 33, phương pháp này cung cấp một phím 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 34 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ọn 3 Tham số tuyến đườngThông số bắt buộcTất nhiên, đô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 các tham số tuyến đường 9 Bạ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 0 Các tham số định tuyến luôn được đặt trong dấu ngoặc nhọn 35 và phải bao gồm các ký tự chữ cái và không được chứa ký tự 36. Thay vì sử dụng ký tự 36, hãy sử dụng dấu gạch dưới ( 38). 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ố cuộc gọi lại/bộ điều khiển không quan trọng Thông số tùy chọnĐôi khi, bạn có thể cần chỉ định tham số tuyến đường, nhưng không bắt buộc sự hiện diện của tham số tuyến đường đó. Bạn có thể làm như vậy bằng cách đánh dấu 39 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 đường 6 Ràng buộc biểu thức chính quyBạ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 90 trên một thể hiện tuyến đường. Phương thức 90 chấp nhận tên của tham số và biểu thức chính quy xác định cách hạn chế tham số 9 Ràng buộc toàn cầuNế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 92. Bạn nên xác định các mẫu này trong phương pháp 93 của 2 40Khi 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ố đó 41Tuyến đường được đặt tênCá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 một tuyến đường bằng cách xâu chuỗi phương thức 95 vào định nghĩa tuyến đường 42Bạ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 Tạo URL cho các tuyến đường được đặt tênSau khi bạn đã gán tên cho một tuyến nhất định, bạn có thể sử dụng tên của tuyến khi tạo URL hoặc chuyển hướng thông qua hàm toàn cầu 96 43Nế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 96. Các tham số đã cho sẽ tự động được chèn vào URL ở đúng vị trí của chúng 44Kiểm tra tuyến đường hiện tạiNế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 đã đặt tên hay không, bạn có thể sử dụng phương thức 98 trên một thể hiện Tuyến. 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 đường 45Nhóm tuyến đườngCá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 hoặc không gian tên, 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 thuộc tính dùng chung được chỉ định ở định dạng mảng làm tham số đầu tiên cho phương thức 99 Phầ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 00 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ảng 46không gian tênMột trường hợp sử dụng phổ biến khác cho các nhóm tuyến đường là gán cùng một không gian tên PHP cho một nhóm bộ điều khiển bằng phương thức 01 47Hãy nhớ rằng, theo mặc định, 2 bao gồm các tệp tuyến đường của bạn trong một nhóm không gian tên, cho phép bạn đăng ký các tuyến điều khiển mà không chỉ định tiền tố không gian tên 03 đầy đủ. Vì vậy, bạn chỉ cần chỉ định phần không gian tên xuất hiện sau không gian tên cơ sở 03 Đị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ụ. Các 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 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 05 trước khi xác định nhóm 48Tiền tố tuyến đườngPhương pháp 06 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 07 49Tiền tố tên tuyến đườngPhương thức 95 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 đặt tiền tố cho tất cả các tên của tuyến đường được nhóm bằng 07. 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ự 60 ở cuối trong tiền tố 70Ràng buộc mô hình tuyến đườngKhi 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 để 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 61 khớp với ID đã cho Ràng buộc ngầm địnhLaravel 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 được gợi ý kiểu khớp với tên đoạn route. Ví dụ 71Vì biến 62 được gợi ý kiểu là mô hình 63 Eloquent và tên biến khớp với phân đoạn URI 64, 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ạo Tùy chỉnh tên khóaNếu bạn muốn liên kết mô hình sử dụng cột cơ sở dữ liệu khác với 65 khi truy xuất một lớp mô hình nhất định, bạn có thể ghi đè phương thức 66 trên mô hình Eloquent 72Ràng buộc rõ ràngĐể đăng ký một ràng buộc rõ ràng, hãy sử dụng phương thức 67 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 trong phương thức 93 của lớp 2 73Tiếp theo, xác định tuyến đường có chứa tham số 64 74Vì chúng tôi đã ràng buộc tất cả các tham số 64 với mô hình 63, nên một phiên bản 61 sẽ được đưa vào tuyến đường. Vì vậy, ví dụ, một yêu cầu tới 94 sẽ đưa thể hiện 61 từ cơ sở dữ liệu có ID là 96 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ẽ được tạo tự động Tùy chỉnh logic độ phân giảiNếu bạn muốn sử dụng logic giải quyết của riêng mình, bạn có thể sử dụng phương pháp 97. 2 mà bạn chuyển đến phương thức 99 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 75Tuyến dự phòngSử dụng phương pháp 400, 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 có thể xác định tuyến đường 401 trong tệp 4 của mình, tất cả phần mềm trung gian trong nhóm phần mềm trung gian 5 sẽ áp dụng cho tuyến đường. Tất nhiên, bạn có thể thêm phần mềm trung gian bổ sung vào tuyến đường này nếu cần 76Giới hạn tỷ lệLaravel bao gồm một phần mềm trung gian để xếp hạng quyền truy cập giới hạn vào các tuyến trong ứng dụng của bạn. Để bắt đầu, hãy gán phần mềm trung gian 404 cho một tuyến hoặc một nhóm tuyến. Phần mềm trung gian 404 chấp nhận hai tham số xác định số lượng yêu cầu tối đa có thể được thực hiện trong một số phút nhất định. Ví dụ: hãy xác định rằng người dùng được xác thực có thể truy cập nhóm tuyến sau 60 lần mỗi phút 77Giới hạn tốc độ độngBạn có thể chỉ định tối đa yêu cầu động dựa trên một thuộc tính của mô hình 61 đã xác thực. Ví dụ: nếu mô hình 61 của bạn chứa thuộc tính 408, bạn có thể chuyển tên của thuộc tính cho phần mềm trung gian 404 để nó được sử dụng để tính số lượng yêu cầu tối đa 78Giả mạo phương thức biểu mẫuBiểu mẫu HTML không hỗ trợ các hành động 8, 411 hoặc 9. Vì vậy, khi xác định các tuyến đường 8, 411 hoặc 9 được gọi từ biểu mẫu HTML, bạn sẽ cần thêm trường 416 ẩn vào biểu mẫu. Giá trị được gửi với trường 416 sẽ được sử dụng làm phương thức yêu cầu HTTP 79Bạn có thể sử dụng chỉ thị 418 Blade để tạo đầu vào 4160 Truy cập tuyến đường hiện tạiBạn có thể sử dụng các phương thức 420, 421 và 422 trên mặt tiền 423 để truy cập thông tin về tuyến đường xử lý yêu cầu đến1 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 pháp có thể truy cập Làm cách nào tôi có thể giải quyết lỗi 404 Không tìm thấy này ngay cả khi Tuyến tồn tại?Dưới đây là một số cách bạn có thể thử khắc phục lỗi 404. Kiểm tra kỹ URL bạn đã nhập, đặc biệt nếu bạn nhập bằng tay. Làm mới trang web. Sử dụng Google (hoặc một công cụ tìm kiếm tương tự) để thử và tìm lại trang này .
Làm cách nào để xử lý lỗi 404 trong Laravel 8?Trang 404 mặc định. tập tin bên trong thư mục đó. Vì vậy, về cơ bản laravel sẽ thiết kế mặc định, nhưng nếu bạn tạo tệp 404 vào thư mục "lỗi" thì nó sẽ lấy từ đó. Vì vậy, bạn chỉ cần tạo tệp 404 blade và đặt mã của riêng bạn như tôi đã thêm sau đó bạn có thể kiểm tra dễ dàng.
Làm cách nào để chuyển hướng đến trang 404 trong Laravel 8?Làm cách nào để chuyển hướng trang 404? . Trong Công cụ > Chuyển hướng > Thêm chuyển hướng mới Trong hộp URL nguồn, hãy nhập hoặc dán URL bị hỏng/cũ/đã thay đổi Trong hộp URL mục tiêu, nhập hoặc dán URL mới Chọn tham gia URL và liên kết giới thiệu trong trình đơn thả xuống phù hợp Trong hộp Hành động, chọn Chuyển hướng đến URL 404 not found nghĩa là gì trong Laravel?Lỗi 404 là sự cố phía máy khách cho biết không thể tìm thấy URL được yêu cầu trên máy chủ . Nó có thể xảy ra vì một số lý do, chẳng hạn như tên miền không được trỏ chính xác, bị hỏng. htaccess hoặc quyền của tệp bị định cấu hình sai. |