Tạo controller Articles

Lượt xem: 36

Tạo controller Articles

Model Articles đã được tạo ra. Tiếp theo chúng ta cần tạo controller Articles cho nó. Controller trong CakePHP xử lý các yêu cầu HTTP và thực hiện login chứa trong các phương thức mô hình để chuẩn bị phản hồi (response). Chúng ta sẽ tạo ra file controller là ArticlesController.php ở trong thư mục src/Controller. Nội dung sẽ trông như sau:

 <?php
// src/Controller/ArticlesController.php

namespace App\Controller;

class ArticlesController extends AppController
{
}

Bây giờ, chúng ta cần thêm một hàng động (action) vào controller. Actions là các phương thức điều khiển có các tuyến (routue) kết nối tới chúng. Ví dụ: Khi người dùng yêu cầu www.dandev.net/articles/index (cũng tương tự www.dandev.net/articles), CakePHP sẽ gọi action index trong controller ArticlesController chúng ta vừa tạo ở trên. Phương thức này sẽ truy vấn tới model và phản hồi bằng cách hiển thị ra một Template ở chế độ xem. Code của action index sẽ như sau:


 <?php
// src/Controller/ArticlesController.php

namespace App\Controller;

class ArticlesController extends AppController
{
    public function index()
    {
        $this->loadComponent('Paginator');
        $articles = $this->Paginator->paginate($this->Articles->find());
        $this->set(compact('articles'));
    }
}

Bằng cách xác định function index() trong  ArticlesController.php, giờ đây người dùng có thể truy cập login bằng cách yêu cầu www.dandev.net/articles/index. Tương tự nếu chúng ta định nghĩa hàm gọi là foobar() người dùng có thể truy cập vào tại đó bằng www.dandev.net/articles/foobar .Bạn có thể muốn đặt tên cho bộ điều khiển và hành động của mình theo cách cho phép bạn có được các URL cụ thể. Chống lại sự cám dỗ đó. Thay vào đó, bạn hãy làm theo các quy tắc đặt tên của CakePHP và tạo ra các tên actions có thể đọc được và có ý nghĩa. Sau đó bạn sử dụng routes để kết nối đến các URL bạn muốn với các hành động mà bạn đã tạo.

Hành động điều khiển của chúng tôi rất đơn giản. Nó tìm nạp một tập hợp các bài viết được phân trang từ cơ sở dữ liệu, sử dụng Model Articles được tải tự động thông qua các quy ước đặt tên.  Sau đó, nó sử dụng hàm set() để đưa các bài viết vào Template (Mà chúng ta sẽ ra ở sau). CakePHP sẽ tự động kết xuất mẫu (template) sau khi hành động điều khiển hoàn thành.

Tham khảo https://book.cakephp.org/3.0/en/quickstart.html

 

 

Xem nhiều nhất