Route là bộ định tuyến giúp chuyển hướng đến một URL cụ thể. Giả sử khi bạn muốn hiển thị dữ liệu từ Database lên màn hình trình duyệt thì lúc này Request từ Route sẽ đi tới Controller. Tại Controller sẽ sử dụng hàm (function) để thực thi request vừa yêu cầu.

Cấu trúc route trong Cakephp 4

Truy cập vào thư mục config/route.php

Route không có tham số

use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;

$routes->connect('/home', ['controller' => 'Articles', 'action' => 'index']);

Nhìn qua cấu trúc bạn sẽ thấy nó chia thành các phần như sau:

Mọi đường dẫn đều bắt đầu bằng $routes->connect.

Tiếp theo đó là mảng [‘controller’ => ‘Articles’, ‘action’ => ‘index’]. Trong mảng này sẽ gồm có Class Controller và hàm index (Hàm này chị trách nhiệm thực thi hành động).

Route truyền tham số

$routes->connect( '/articles/{id}', ['controller' => 'Articles', 'action' => 'view'], )

Đường dẫn khi truy cập trên trình duyệt có dạng http://localhost/cakephp/view/1

Route group

Gom nhóm các route lại chung một tiền tố

$routes->scope('/admin', function (RouteBuilder $builder) {
  $builder->connect('/read', array('controller' => 'Articles', 'action' => 'read'));
  $builder->connect('/add', array('controller' => 'Articles', 'action' => 'add'));
  $builder->connect('/edit/{$id}', ['controller' => 'Articles', 'action' => 'edit']);
  $builder->connect('/delete/{$id}', ['controller' => 'Articles', 'action' => 'delete']);
  $builder->fallbacks();
});

Khi truy cập sẽ là http://localhost/cakephp/admin/read

Đặt tên cho Route

$routes->scope('/', function (RouteBuilder $builder) {
   $builder->connect("/home", [
        "controller" => "HomeController",
        "action" => "display"
    ],[
        "_name" => "this-name" // Name to route
    ]);
});

Kết luận: Với bài viết Route trong Cakephp 4 trên đây hi vọng giúp bạn phần nào rõ ràng hơn. Bài viết này tham khảo tại https://book.cakephp.org/4/en/development/routing.html bạn có thể truy cập và tham khảo chi tiết hơn.

Category:

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *