Tạo Model, Controller và View bằng lệnh Bake trong CakePHP

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

Tạo Model, Controller và View bằng lệnh Bake trong CakePHP

CakePHP cung cấp công cụ Bake để tự động tạo ra các thành phần cơ bản của ứng dụng, như Model, Controller, và View. Dưới đây là các bước chi tiết để thực hiện việc này.

1. Kiểm tra môi trường

Trước khi sử dụng lệnh Bake, hãy chắc chắn:

  • Bạn đã cài đặt thành công CakePHP trong dự án của mình.
  • Đã thiết lập kết nối cơ sở dữ liệu trong file cấu hình config/app_local.php.

Cấu hình mẫu cho kết nối cơ sở dữ liệu:

'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'host' => 'localhost',
        'username' => 'root',
        'password' => 'password',
        'database' => 'your_database_name',
        'encoding' => 'utf8mb4',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
    ],
],

2. Chạy lệnh Bake

Công cụ Bake cho phép bạn tự động tạo các thành phần của ứng dụng.

Tạo tất cả (Model, Controller và View)

Sử dụng lệnh sau để tạo toàn bộ:

bin/cake bake all <tên_bảng>

Ví dụ:

bin/cake bake all lessons

Lệnh này sẽ tạo:

  • Model: src/Model/Table/LessonsTable.phpsrc/Model/Entity/Lesson.php
  • Controller: src/Controller/LessonsController.php
  • View: Thư mục src/Template/Lessons/ chứa các file view (index, view, add, edit).

Tạo từng thành phần riêng lẻ

Nếu bạn muốn tạo từng phần, bạn có thể sử dụng các lệnh sau:

  1. Tạo Model:

    bin/cake bake model <tên_bảng>
    

    Ví dụ:

    bin/cake bake model lessons
    
  2. Tạo Controller:

    bin/cake bake controller <tên_bảng>
    

    Ví dụ:

    bin/cake bake controller lessons
    
  3. Tạo View:

    bin/cake bake template <tên_bảng>
    

    Ví dụ:

    bin/cake bake template lessons
    

3. Kiểm tra và tinh chỉnh

Sau khi chạy lệnh Bake, kiểm tra các file được tạo trong các thư mục tương ứng:

  • Model: src/Model/Table/src/Model/Entity/
  • Controller: src/Controller/
  • View: src/Template/<Tên_Bảng>/

Bạn có thể sửa đổi các file này để phù hợp với yêu cầu cụ thể của ứng dụng.


Ví dụ thực tế

Giả sử bạn có bảng lessons trong cơ sở dữ liệu với cấu trúc sau:

CREATE TABLE lessons (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    created DATETIME DEFAULT CURRENT_TIMESTAMP,
    modified DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

Chạy lệnh:

bin/cake bake all lessons

Kết quả:

  • Model:
    • LessonsTable.php (xử lý logic liên quan đến bảng lessons)
    • Lesson.php (định nghĩa entity)
  • Controller: LessonsController.php (xử lý logic điều hướng và gọi View)
  • View: Các file view (index, view, add, edit) trong thư mục src/Template/Lessons/.

4. Truy cập kết quả

Sau khi tạo xong, bạn có thể truy cập vào URL:

http://yourdomain.com/lessons

Trang này sẽ hiển thị danh sách các bài học (index). Bạn cũng có thể thêm, chỉnh sửa hoặc xóa dữ liệu trực tiếp từ giao diện mặc định.

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ệ