Tạo Template hiển thị danh sách bài viết (Articles)
Lượt xem: 4246
Tạo Template hiển thị danh sách bài viết (Articles)
Chúng ta đã xây dựng controller để lấy dữ liệu (data) từ model để hiển thị nội dung, chúng ta hãy tạo một template để hiển thị cho action index. Phần hiển thị template trong CakePHP được trình bày với code PHP được chèn vào bố cục (layout) của ứng dụng. Mặc dù chúng được tạo ra HTML nhưng View cũng có thể tạo ra JSON, CSV thậm chí cả file nhị phân như PDF.
Một Layout được trình bày bao quanh một view. File Layout chứa các nội dụng phổ biến của trang web như header, footer và các yếu tố điều hướng (ở đây chính là menus). Một ứng dụng có thể chứa nhiều layout, chúng ta có thể chuyển đổi giữa chúng, nhưng ở phần này chúng ta chỉ sử dụng một layout mặc định.
Các Template trong CakePHP sẽ được lưu trữ tại src/Template trong một folder tương ứng với controller. Vì vậy, chúng ta sẽ tạo ra folder Articles trong trường hợp này. Hãy thêm đoạn code sau vào ứng dụng:
<!-- File: src/Template/Articles/index.ctp -- >
<h1>Articles </h1 >
<table >
<tr >
<th > Tiêu đề </th >
<th > Ngày tạo </th >
</tr >
<!-- Đây là nơi chúng ta lặp lại thông qua đối tượng truy vấn $article và in ra thông tin bài viết -- >
<?php foreach ($articles as $article): ? >
<tr >
<td >
<?= $this->Html->link($article->title, ['action' => 'view', $article->slug]) ? >
</td >
<td >
<?= $article->created->format(DATE_RFC850) ? >
</td >
</tr >
<?php endforeach; ? >
</table >
Ở phần trước chúng ta đã gán biến 'articles' cho view bằng cách sử dụng hàm set() . Các biến chuyền vào view là biến có sẵn trong view template dưới dạng biến cục bộ mà chúng ta đã sử dụng ở đoạn code trên.
Bạn có thể nhận thấy việc sử dụng đối tượng gọi là $this->HTML. Đây là một ví dụ của CakePHP HtmlHelper. CakePHP đi kèm với một bộ hỗ trợ hiển thị (view) giúp thực hiện các tác vụ như tạo links, form và button phân trang (pagination) dễ dàng. Bạn có thể tìm hiểu thêm về Helper ở các chương về Helper. Nhưng điều quan trọng cần lưu ý ở đây là phương thức link() sẽ tạo liên kết HTML với văn bản liên kết đã cho (tham số đầu tiên) và URL (tham số thứ 2).
Khi chỉ định URL trong CakePHP, bạn nên sử dụng mảng hoặc các định tuyến (routes) được đặt tên. Các cú pháp này cho phép bạn tận dụng các tính năng định tuyến ngược mà CakePHP cung cấp.
Tại thời điểm này, bạn sẽ có thể trỏ trình duyệt của mình tới http://localhost:8765/articles/index. Bạn sẽ thấy chế độ xem danh sách của mình, được định dạng chính xác với tiêu đề và bảng liệt kê các bài viết.
Video
Tham khảo https://book.cakephp.org/3.0/en/quickstart.html