[Bài 2] Cách hiển thị dữ liệu từ Database với CakePHP

Sau khi tìm hiểu CakePHP là gì rồi bạn sẽ tìm hiểu đến cách thức hoạt động của Model–View–Controller. Bài viết này hướng dẫn bạn thêm dữ liệu vào cơ sở dữ liệu (Database) bằng CakePHP kết hợp MySQL.

Cách thức hoạt động khá đơn giản. Khi bạn nhập thông tin tại View thì nó sẽ chuyển tới Controller. Từ Controller sẽ truyền tới Model và từ Model sẽ ra lệnh cho MySQL ghi dữ liệu vào bảng (Table).

Trước khi thực hiện bài này bạn nên xem lại bài 1 để biết cách cấu hình và kết nối CSDL đã nhé.

Bước 1: Truy cập vào http://localhost/phpmyadmin/

– Tạo Database mới tên là data

– Tạo bảng (Table) với đoạn MySQL sau:

CREATE TABLE `posts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`description` text COLLATE utf8_unicode_ci NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1 = Active, 0 = Inactive',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Tiếp theo chèn dữ liệu bài viết vào bằng MySQL

Hiển thị dữ liệu từ Database bằng CakePHP

INSERT INTO 
    `data`.`posts` (`id`, `title`, `description`, `created`, `modified`, `status`) 
VALUES 
    (NULL, 'CakePHP là gì? Cài đặt CakePHP Framework thế nào?','...', NOW(), NOW(), '1'), 
    (NULL, 'Cách tạo Custom Taxonomy WordPress hiển thị Danh mục sản phẩm','...', NOW(), NOW(), '1'), 
    (NULL, '[Bài 8] Thêm chức năng sidebar, footer trong WordPress','...', NOW(), NOW(), '1'), 
    (NULL, '[Bài 7] Hướng dẫn tạo menu xổ xuống trong WordPress','...', NOW(), NOW(), '1'), 
    (NULL, '[Bài 6] Code hiển thị bài viết liên quan trong WordPress','...', NOW(), NOW(), '1');

Bước 2: Tại tập tin là PostsController.php trong C:\xampp\htdocs\cakephp\src\Controller

<?php
// src/Controller/PostsController.php

namespace App\Controller;

class PostsController extends AppController
{
public function index()
{
$posts = $this->Posts->find('all');
$this->set(compact('posts'));
}
}

Lưu ý: public function index() thì index là phải đặt theo tên giống với index.ctp nếu đặt khác đi sẽ không hoạt động.

Bước 3: Tạo file index.ctp trong thư mục là Posts C:\xampp\htdocs\cakephp\src\Template\ – Tạo thêm thư mục Posts

<h1>Blog Posts</h1>
<div class="row">
<?php if(!empty($posts)): foreach($posts as $post): ?>
<div class="post-box">
<div class="post-content">
<div class="caption">
<h4><a href="javascript:void(0);"><?php echo $post->title; ?></a></h4>
<p><?php echo $post->description; ?></p>
</div>
</div>
</div>
<?php endforeach; else: ?>
<p class="no-record">No post(s) found......</p>
<?php endif; ?>
</div>

Bước 4: Mở file routes.php tại C:\xampp\htdocs\cakephp\config để cấu hình định tuyến

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

Cuối cùng truy cập vào localhost/cakephp để xem kết quả

Show dữ liệu bằng CakePHP

Oke vậy là qua bài viết này bạn đã biết cách show data từ Database khá dễ dàng rồi phải không nào. Bài tiếp theo mình sẽ hướng dẫn bạn cách thêm dữ liệu vào CSDL như thế nào.

0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments