Làm cách nào để hiển thị tất cả các tuyến đường trong CodeIgniter?

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

Làm cách nào để hiển thị tất cả các tuyến đường trong CodeIgniter?
Thợ làm đàn CI

tuyế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 CI

Cá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 đường

Ba 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' => '...', (...)] );
8

cú pháp

Nế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', [ (...) ]);
0

Nế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ố 8

Bạ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', [ (...) ]);
2

Route::match(['GET', 'POST'], 'path', 'controller@method', [ (...) ]);

không gian tên

Thuộ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' => '...', (...)] );
2

Lư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' => '...', (...)] );
3

tuyến đường được đặt tên

Nê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 đường

Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] );
7

Khai báo hai hay nhiều route trùng tên sẽ dẫn đến ngoại lệ

Các nhóm

Sử 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 con

Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] );
1

Có 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', [ (...) ]);
8

Route::get('test', 'controller@method', ['prefix' => '...', 'namespace' => '...', (...)] );
3

Tuyế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ể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');
0

Kế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');
1

Có 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ạo

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');
2

Kế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');
3

Bộ điều khiển mặc định

Luthier 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 định

Bạ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 định

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');
4

Các chức năng ẩn danh như các tuyến đường

Khô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' => '...', (...)] );
27

Tham số tuyến đường

Tham 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 ejemplo

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');
6

Bạ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ím

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');
7

Hã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');
8

Cá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' => '...', (...)] );
33

Cũ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' => '...', (...)] );
34

thông số dính

Khi 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' => '...', (...)] );
0

Cá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ày

Route::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' => '...', (...)] );
2

Trong 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' => '...', (...)] );
42

Route::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' => '...', (...)] );
4

Mục lục
Cá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

Làm cách nào để hiển thị tất cả các tuyến đường trong CodeIgniter?
Thợ làm đàn CI

Tà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
  • blog chính thức

© 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)