Tạo Chức Năng Hiển Thị Danh Sách Khoản Vay

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 16 tháng 1, 2025

Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách xây dựng chức năng hiển thị danh sách khoản vay trong CakePHP. Bắt đầu từ mô hình MVC, chúng ta sẽ tạo Model, Controller, View và thiết lập route để hiển thị dữ liệu khoản vay trên trang chủ một cách đơn giản và hiệu quả.

Phần 1: Giới Thiệu về Mô Hình MVC

Mô hình MVC

MVC là viết tắt của Model-View-Controller, một mô hình kiến trúc phổ biến để xây dựng ứng dụng web. Mỗi thành phần của mô hình MVC có một vai trò khác nhau, giúp chia tách logic ứng dụng và việc hiển thị giao diện cho người dùng.

  1. Model (M): Quản lý dữ liệu và logic nghiệp vụ của ứng dụng. Model kết nối với cơ sở dữ liệu và xử lý tất cả các thao tác liên quan đến dữ liệu. Trong CakePHP, các model được đại diện bởi các lớp TableEntity trong thư mục src/Model/Table.
  2. View (V): Chịu trách nhiệm hiển thị dữ liệu cho người dùng. View lấy dữ liệu từ Controller và hiển thị nội dung thông qua các file PHP trong thư mục src/Template.
  3. Controller (C): Nhận yêu cầu từ người dùng, xử lý logic và giao tiếp với Model để lấy dữ liệu. Controller sau đó gửi dữ liệu đến View để hiển thị cho người dùng. Trong CakePHP, các controller nằm trong thư mục src/Controller.

Phần 2: Tạo chức năng danh sách khoản vay

Bước 1: Tạo Model KhoanVay

Để tạo model cho bảng khoan_vay, bạn sử dụng lệnh bake như sau:

bin/cake bake model KhoanVay

Lệnh này sẽ tạo ra file model tại src/Model/Table/. Model này sẽ giúp bạn thao tác với bảng khoan_vay trong cơ sở dữ liệu.

Bước 2: Tạo Controller KhoanVayController

Controller sẽ xử lý logic lấy danh sách các khoản vay và gửi dữ liệu đến view để hiển thị. Để tạo controller cho KhoanVay, bạn sử dụng lệnh:

bin/cake bake controller KhoanVay

Lệnh này sẽ tạo ra file src/Controller/ với tên KhoanVayController.php. Trong controller này, bạn có thể thêm phương thức index để lấy dữ liệu từ bảng khoan_vay và truyền đến view.

Ví dụ nội dung của KhoanVayController.php:

namespace App\Controller;

use App\Controller\AppController;

class KhoanVayController extends AppController
{
    public function index()
    {
        // Sử dụng model để lấy tất cả các khoản vay sau đó truyền ra view để hiển thị ra
        // paginate sẽ thực hiện phân trang trong trường hợp dữ liệu quá nhiều
        $khoanVay = $this->paginate($this->KhoanVay);
        $this->set(compact('khoanVay'));
    }
}

Bước 3: Thiết Lập Routes

Routes là gì ?

Routes trong CakePHP là các quy tắc định nghĩa cách xử lý các URL yêu cầu và ánh xạ chúng đến các phương thức trong Controller. Mỗi khi người dùng truy cập vào một URL trên trình duyệt, CakePHP sẽ kiểm tra các route đã được cấu hình để xác định ControllerAction (phương thức) nào sẽ xử lý yêu cầu đó.

Trong CakePHP, routes thường được cấu hình trong file config/routes.php. Cấu hình này giúp xác định cách các URL sẽ được chuyển đến các controller tương ứng trong ứng dụng.

Thiết lập route cho trang chủ

Để thiết lập routes điều hướng người dùng đến trang hiển thị danh sách khoản vay, bạn mở file config/routes.php và thêm route cho trang chủ như sau:

use Cake\Routing\RouteBuilder;

$routes->scope('/', function (RouteBuilder $routes) {
    // Route cho trang chủ, chuyển đến phương thức index của KhoanVayController
    $routes->connect('/', ['controller' => 'KhoanVay', 'action' => 'index']);
    $routes->fallbacks('DashedRoute');
});

Đoạn mã này sẽ định nghĩa route cho trang chủ (/), điều hướng người dùng đến phương thức index của KhoanVayController.

Bước 4: Tạo View index.php cho KhoanVay

Để tạo view cho phương thức index, bạn vào thư mục templates/, tạo thư mục KhoanVay:

templates/KhoanVay/

Trong thư mục KhoanVay, tạo file index.php để hiển thị danh sách khoản vay:

templates/KhoanVay/index.php

Bước 5: Viết Nội Dung Trong File index.php

Dưới đây là một ví dụ về cách hiển thị danh sách khoản vay trong file index.php:

<h1>Danh sách Khoản Vay</h1>

<?php if (!empty($khoanVay)) : ?>
    <ul>
        <?php foreach ($khoanVay as $item) : ?>
            <li>
                <strong><?= h($item->ten_khach_hang) ?></strong>,
                Số tiền: <?= h($item->so_tien) ?> VND<br>
            </li>
        <?php endforeach; ?>
    </ul>
<?php else : ?>
    <p>Không có khoản vay nào.</p>
<?php endif; ?>

Giải thích :

  • Hàm h() đảm bảo rằng dữ liệu đầu ra được thoát ký tự đặc biệt để tránh lỗi bảo mật XSS.
  • foreach sẽ lặp qua danh sách $khoanVay và hiển thị tên khách hàng và số tiền cho từng khoản vay.

Bước 6: Kiểm Tra Kết Quả

Chạy lệnh bên dưới để khởi động server

bin/cake server

Truy cập vào http://localhost:8765/ trên trình duyệt. Nếu tất cả hoạt động đúng, bạn sẽ thấy danh sách các khoản vay được hiển thị theo định dạng đã thiết lập trong file index.php như bên dưới:

Với các bước này, bạn đã tạo xong hệ thống MVC cho quản lý khoản vay. Trong bài tiếp theo chúng ta sẽ cùng tìm hiểu cách xây dựng giao diện và layout trong CakePHP!

Website Logo

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.

Bình luận

Website Logo

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.

Liên hệ công việc qua email dưới đây.

lhvuctu@gmail.com

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ