Tạo Model, Controller và View bằng lệnh Bake trong CakePHP
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.php
vàsrc/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:
-
Tạo Model:
bin/cake bake model <tên_bảng>
Ví dụ:
bin/cake bake model lessons
-
Tạo Controller:
bin/cake bake controller <tên_bảng>
Ví dụ:
bin/cake bake controller lessons
-
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/
và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ảnglessons
) -
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.

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.
Xem thêm

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