Sử dụng Cookies. Trang web này sử dụng cookie của riêng mình và của bên thứ ba để cung cấp cho bạn trải nghiệm được cá nhân hóa. Kiểm tra Chính sách bảo mật của chúng tôi để biết thêm thông tin Chấp nhận Thợ làm đàn CItuyến đường Tạo route là một nhiệm vụ cơ bản trong quá trình phát triển bất kỳ ứng dụng web nào. Luthier CI cải thiện định tuyến của CodeIgniter để việc xây dựng các ứng dụng lớn không quá phức tạp Mục lục- tuyến đường
- Sự khác biệt giữa định tuyến CodeIgniter và Luthier CI
- Các loại tuyến đường
- cú pháp
- không gian tên
- tiền tố
- tuyến đường được đặt tên
- Các nhóm
- Tuyến đường tài nguyên
- Bộ điều khiển mặc định
- Các chức năng ẩn danh như các tuyến đường
- Tham số tuyến đường
- thông số tùy chọn
- Biểu thức chính quy trong tham số
- thông số dính
Sự khác biệt giữa định tuyến CodeIgniter và Luthier CICách mà CodeIgniter xử lý các tuyến được sửa đổi bởi Luthier CI trong quá trình thực thi - Trong CodeIgniter, theo mặc định, các tuyến có thể truy cập thông qua bất kỳ động từ HTTP nào. Với Luthier CI, bắt buộc phải xác định các động từ HTTP được chấp nhận trong mỗi đường dẫn
- Trong CodeIgniter, có thể truy cập bộ điều khiển mà không cần xác định tuyến, trong khi với Luthier CI, chỉ các tuyến đã xác định mới được phát hiện
- Với Luthier CI, mỗi tuyến đường là một thực thể độc lập và duy nhất, với các tham số được xác định rõ ràng và khả năng tạo URL từ chúng
- Với Luthier CI, có thể sử dụng các chức năng ẩn danh làm bộ điều khiển và thậm chí xây dựng một ứng dụng web hoàn chỉnh mà không cần sử dụng một bộ điều khiển nào
Các loại tuyến đườngBa loại tuyến đường có sẵn trong Luthier CI - các tuyến HTTP. được truy cập theo yêu cầu HTTP và được xác định trong tệp
Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 5 - tuyến đường AJAX. chỉ được truy cập theo yêu cầu AJAX và được xác định trong tệp
Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 6 - tuyến đường CLI. chỉ được truy cập trong môi trường CLI (Giao diện dòng lệnh) và được xác định trong tệp
Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 7
Mặc dù bạn có thể định nghĩa các tuyến AJAX trong web. php, lý tưởng nhất là làm điều đó trong Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 8cú phápNếu bạn đã sử dụng Laravel thì bạn sẽ biết cách viết route trong Luthier CI, vì cú pháp của nó rất giống nhau. Đây là một ví dụ về tuyến Luthier CI Route::get('foo', 'bar@baz');
Ở đâu - foo là URL tuyến đường và
- bar@baz là tên của bộ điều khiển và phương thức được chỉ định, được phân tách bằng @
Phương thức Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 9 nói rằng tuyến đường chỉ chấp nhận yêu cầu của Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 0Nếu bạn xác định hai hoặc nhiều tuyến có cùng URL và cùng động từ HTTP, thì tuyến đầu tiên sẽ luôn được sử dụng Bạn có thể định nghĩa các tuyến cho các động từ GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS và TRACE bằng các phương thức sau của lớp Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 1________số 8Bạn có thể chuyển một mảng có thuộc tính tuyến đường làm đối số thứ ba Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] );
Cũng có thể chấp nhận nhiều động từ HTTP trong một tuyến đường, sử dụng phương thức Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 2Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]);
không gian tênThuộc tính không gian tên cho CodeIgniter biết thư mục con chứa bộ điều khiển Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 2Lưu ý rằng đây không phải là không gian tên PHP, mà là tên thư mục tiền tốSử dụng thuộc tính tiền tố để thêm tiền tố vào tuyến đường Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 3tuyến đường được đặt tênNên gán tên cho các tuyến đường của bạn. Điều này sẽ cho phép bạn tạo URL trong chế độ xem và bộ điều khiển của mình Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 4Để lấy tuyến đường theo tên, hãy sử dụng hàm Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 3, trong đó Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 4 là tên của tuyến đườngRoute::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 7Khai báo hai hay nhiều route trùng tên sẽ dẫn đến ngoại lệ Các nhómSử dụng Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 5 để xác định một nhóm các tuyến đường, trong đó Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 6 là tiền tố và Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 7 là một hàm ẩn danh chứa các tuyến đường conRoute::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 1Có thể gán thuộc tính cho tất cả các tuyến trong nhóm, sử dụng cú pháp Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 8Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 3Tuyến đường tài nguyênĐường dẫn tài nguyên là lối tắt để tạo định tuyến cho các hoạt động CRUD (Tạo, Đọc, Cập nhật, Xóa) cho bộ điều khiển Để tạo một tuyến tài nguyên, hãy sử dụng phương pháp Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 9, trong đó Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 4 là tên/tiền tố của các tuyến và Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 21 là tên của bộ điều khiểnRoute::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 0Kết quả Route::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 1Có thể xác định các tuyến tài nguyên một phần, sử dụng cú pháp Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 22, trong đó Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 23 là một mảng (bao gồm) các đường dẫn sẽ được tạoRoute::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 2Kết quả Route::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 3Bộ điều khiển mặc địnhLuthier CI tự động đặt bất kỳ tuyến đường nào được xác định bằng URL Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 24 và động từ GET HTTP làm bộ điều khiển mặc địnhBạn có thể xác định rõ ràng bộ điều khiển mặc định bằng cách sử dụng phương pháp Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 25, trong đó Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 4 là bộ điều khiển mặc địnhRoute::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 4Các chức năng ẩn danh như các tuyến đườngKhông cần cung cấp tên bộ điều khiển/phương thức để xác định tuyến đường trong Luthier CI. Bạn có thể sử dụng các chức năng ẩn danh (hoặc đóng) làm bộ điều khiển Route::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 5Để truy cập phiên bản (singleton) của CodeIgniter trong các chức năng ẩn danh, hãy sử dụng trình trợ giúp Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 27Tham số tuyến đườngTham số là các phần động của URL tuyến đường, cho phép nhiều URL phân giải thành cùng một tuyến đường. Ví dụ, để xác định tham số, hãy đặt chúng giữa {keys}. Các cuộc điều tra về con trai của các đường dẫn URL của một đường dẫn, khả năng có thể có nhiều URL dẫn đến một đường dẫn sai. Para definir parámetros, enciérralos entre Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 28, por ejemploRoute::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 6Bạn không thể xác định hai hoặc nhiều tham số có cùng tên thông số tùy chọnĐể đặt một tham số là tùy chọn, hãy thêm một Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 29 trước khi đóng các phímRoute::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 7Hãy nhớ rằng sau tham số đầu tiên được xác định là tùy chọn, TẤT CẢ các tham số khác phải là tùy chọn Luthier CI sẽ tạo cho bạn cây tuyến đường hoàn chỉnh cho tất cả các tham số tùy chọn, vì vậy bạn không phải lo lắng về việc viết thêm tuyến đường ngoài tuyến đường chính Biểu thức chính quy trong tham sốBạn có thể giới hạn nội dung của tham số tuyến đường đối với một bộ ký tự cụ thể Route::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 8Các trình giữ chỗ Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 30 và Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 31 tương ứng với Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 32 và Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 33Cũng có thể sử dụng biểu thức chính quy để xác định tham số tuyến đường Route::post('foo', 'bar@baz');
Route::put('foo', 'bar@baz');
Route::patch('foo', 'bar@baz');
Route::delete('foo', 'bar@baz');
Route::head('foo', 'bar@baz');
Route::options('foo', 'bar@baz');
Route::trace('foo', 'bar@baz'); 9Ở trên tương đương với Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 34thông số dínhKhi bạn làm việc với các nhóm định tuyến xác định tham số, chúng phải được khai báo dưới dạng đối số trong các phương thức điều khiển của chúng theo cách đệ quy. Tùy thuộc vào độ phức tạp của ứng dụng của bạn, các tham số được kế thừa sẽ tích lũy, làm cho các phương thức của bộ điều khiển của bạn có số lượng đối số rất lớn Các tham số dính giúp bạn giải quyết vấn đề này Tham số kết dính là bất kỳ tham số tuyến đường nào bắt đầu bằng dấu gạch dưới ( Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 35). Chúng có các tính chất sau- Không cần thiết phải xác định nó trong các đối số của các phương thức điều khiển tuyến phụ
- Giá trị của tham số sẽ được lấy từ URL và sẽ được cung cấp tự động trong hàm
Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 36, vì vậy nó có thể được bỏ qua hoặc ghi đè bởi bất kỳ giá trị nào khác
Xem xét nhóm tuyến đường sau Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 0Các tuyến đường Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 37 và Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 38 chia sẻ tham số cố định Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 39 và mặc dù vẫn được yêu cầu phải có trong URL, nhưng bạn có thể bỏ qua nó khi xây dựng các tuyến đường trong nhóm nàyRoute::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 1Điều này hữu ích khi bạn cần liên kết đến các biến thể khác của tuyến đường hiện tại Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 2Trong bộ điều khiển Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 40 và Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 41, các phương thức của chúng sẽ có một đối số duy nhất. Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 42Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 3Để có được giá trị của tham số dính trong bộ điều khiển, hãy sử dụng phương pháp Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 43 của thuộc tính Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 44, trong đó Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]); 4 là tên của tham sốRoute::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] ); 4Mục lụcCác tuyến Sự khác biệt giữa định tuyến CodeIgniter và Luthier CI Các loại tuyến Cú pháp Không gian tên Tiền tố Các tuyến được đặt tên Nhóm Các tuyến tài nguyên Bộ điều khiển mặc định Các chức năng ẩn danh như tuyến Các tham số tuyến Các tham số tùy chọn Biểu thức chính quy trong các tham số Tham số cố định Thợ làm đàn CITài liệu- Chào mừng
- Cài đặt
- tuyến đường
- CLI
- Phần mềm trung gian
- xác thực
- gỡ lỗi
- ví dụ
Nhiêu tai nguyên hơn© Phần mềm Ingenia và cộng tác viên. Đã đăng ký Bản quyền. Điều khoản và điều kiện · Chính sách bảo mật CodeIgniter® là nhãn hiệu đã đăng ký của CodeIgniter Foundation. Symfony™ là thương hiệu của Symfony SAS. Phần mềm Ingenia không có kết nối với bất kỳ công ty nào trong số này. Tất cả các logo thuộc về tác giả của họ
Routes php ở đâu trong CodeIgniter?
Quy tắc định tuyến được xác định trong application/config/routes của bạn. Tệp php . Trong đó, bạn sẽ thấy một mảng có tên $route cho phép bạn chỉ định tiêu chí định tuyến của riêng mình. Các tuyến đường có thể được chỉ định bằng ký tự đại diện hoặc Biểu thức chính quy.
Làm cách nào để xác định tuyến đường trong CodeIgniter?
Quy tắc định tuyến được xác định trong các tuyến đường. tệp php tại vị trí application/config . Trong tệp này, bạn sẽ thấy mảng $route, nó cho phép bạn chỉ định tiêu chí định tuyến của riêng mình. Các tuyến đường có thể được phân loại theo hai cách, sử dụng Ký tự đại diện hoặc Biểu thức chính quy.
Định tuyến URI là gì?
Định tuyến URI là quá trình lấy URI được yêu cầu và quyết định trình xử lý ứng dụng nào sẽ xử lý yêu cầu hiện tại .
Làm cách nào để chuyển hướng một tuyến đường trong CodeIgniter?
Toàn bộ hướng dẫn về CodeIgniter 4 Spark CLI . $uri (chuỗi) − Chuỗi URI $method (string) − Phương thức chuyển hướng ('auto', 'location' hoặc 'refresh') $code (string) − Mã phản hồi HTTP (thường là 302 hoặc 303) |