• Không có kết quả nào được tìm thấy

GIÁO TRÌNH

N/A
N/A
Protected

Academic year: 2022

Chia sẻ "GIÁO TRÌNH"

Copied!
37
0
0

Loading.... (view fulltext now)

Văn bản

(1)

BM/QT10/P.ĐTSV/04/04 Ban hành lần: 3

UBND TỈNH BÀ RỊA – VŨNG TÀU

TRƯỜNG CAO ĐẲNG KỸ THUẬT CÔNG NGHỆ

GIÁO TRÌNH

MÔ ĐUN LẬP TRÌNH WEB PHP NÂNG CAO NGHỀ: CÔNG NGHỆ THÔNG TIN

TRÌNH ĐỘ: CAO ĐẲNG

(Ban hành kèm theo Quyết định số: ……/QĐ-CĐKTCN, ngày … tháng … năm 20…… của Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ BR-VT)

BÀ RỊA – VŨNG TÀU, NĂM 2020

(2)

TUYÊN BỐ BẢN QUYỀN

Nhằm đáp ứng nhu cầu học tập và nghiên cứu cho giảng viên và sinh viên nghề Công nghệ Thông tin trong trường Cao đẳng Kỹ thuật Công nghệ Bà Rịa – Vũng Tàu, chúng tôi đã thực hiện biên soạn tài liệu Lập trình web PHP nâng cao.

Tài liệu được biên soạn thuộc loại giáo trình phục vụ giảng dạy và học tập, lưu hành nội bộ trong Nhà trường nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.

Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm.

(3)

LỜI GIỚI THIỆU

Giáo trình “Lập trình web PHP nâng cao” được biên soạn dựa trên khung chương trình đào tạo Cao đẳng nghề Công nghệ Thông tin đã được Trường Cao đẳng Kỹ thuật Công nghê Bà Rịa – Vũng Tàu phê duyệt.

Tác giả đã nghiên cứu một số tài liệu, công nghệ hiện đại kết hợp với kinh nghiệm làm việc thực tế để viết nên giáo trình này. Nội dung được tác giả trình bày cô động, dễ hiểu kèm theo các bước hướng dẫn thực hành chi tiết theo nguyên tắc quan tâm đến kết quả đầu ra, khả năng tự học và kỹ năng cần thiết để HSSV có thể hoàn thành ứng dụng web quảng cáo sản phẩm, thương mại điện tử, … bằng ngôn ngữ PHP, một trong những ngôn ngữ lập trình ứng dụng web thông dụng hiện nay, đáp ứng nhu cầu thực tế của doanh nghiệp.

Nội dung giáo trình được chia thành 07 bài, trong đó:

Bài 1: Tổng quan

Bài 2: Tạo ứng dụng CodeIgniter đầu tiên Bài 3: Routing

Bài 4: Controller Bài 5: View Bài 6: Model

Bài 7: Hoàn chỉnh Controller/View

Trong quá trình biên soạn, chắc chắn giáo trình còn nhiều thiếu sót. Tác giả rất mong nhận được ý kiến đóng góp của quý thầy/cô và các em học sinh, sinh viên để tiếp tục hoàn thiện hơn.

Xin chân thành cảm ơn quý đồng nghiệp, bạn bè đã có những ý kiến đóng góp trong quá trình biên soạn giáo trình này.

Bà Rịa – Vũng Tàu, ngày …… tháng …… năm ………

Tham gia biên soạn 1. Phan Hữu Phước – Chủ biên

(4)

MỤC LỤC

LỜI GIỚI THIỆU...1

MỤC LỤC...3

BÀI 1: TỔNG QUAN...9

1. Mô hình MVC...9

2. CodeIgniter...10

3. Dòng xử lý của ứng dụng web CodeIgniter...10

CÂU HỎI, BÀI TẬP...11

BÀI 2: TẠO ỨNG DỤNG CODEIGNITER ĐẦU TIÊN...13

1. Tạo cơ sở dữ liệu...13

2. Tải mã nguồn và tạo site...15

3. Cấu trúc thư mục...16

CÂU HỎI, BÀI TẬP...16

BÀI 3: ROUTING...17

1. Cấu hình site...17

1.1. Nhập thông tin cấu hình chung...17

1.2. Đọc thông tin cấu hình...18

1.3. Tạo thông tin cấu hình riêng...18

2. Cấu trúc địa chỉ...19

3. Cấu hình route mặc định...20

CÂU HỎI, BÀI TẬP...21

GỢI Ý, ĐÁP ÁN...22

BÀI 4: CONTROLLER...23

1. Khái niệm...23

2. Tạo controller...23

3. Tạo hàm hành động...23

4. Tổ chức controller trong thư mục...24

CÂU HỎI, BÀI TẬP...25

GỢI Ý, ĐÁP ÁN...25

(5)

BÀI 5: VIEW...27

1. Khái niệm...27

2. Tạo view...27

2.1. Tạo view dùng chung...28

2.2. Tạo view nội dung cho các trang...29

3. Tải view...29

4. Truyền dữ liệu đến view...29

5. Form trên view...30

CÂU HỎI, BÀI TẬP...31

BÀI 6: MODEL...33

1. Khái niệm...33

2. Tạo model...33

3. Định nghĩa các hàm trong model...34

3.1. Cập nhật hàm GetList (Đọc nhiều dòng dữ liệu)...34

3.2. Cập nhật hàm GetEntry (Đọc một dòng dữ liệu theo khóa)...34

3.3. Cập nhật hàm Insert (Thêm một dòng dữ liệu)...35

3.4. Cập nhật hàm Update (Cập nhật một dòng dữ liệu)...35

3.5. Cập nhật hàm Delete (Xóa một dòng dữ liệu)...35

4. Truy xuất CSDL thông qua model trong controller...35

4.1. Thêm hàm khởi tạo...35

4.2. Cập nhật hàm index...36

4.3. Cập nhật tập tin application/views/tacgia/index.php...36

CÂU HỎI, BÀI TẬP...36

GỢI Ý, ĐÁP ÁN...36

BÀI 7: HOÀN CHỈNH CONTROLLER/VIEW...37

1. Thêm dữ liệu...37

2. Cập nhật dữ liệu...37

3. Xóa dữ liệu...39

(6)

CÂU HỎI, BÀI TẬP...39 TÀI LIỆU THAM KHẢO...41

(7)

GIÁO TRÌNH MÔ ĐUN Tên mô đun: Lập trình web PHP nâng cao

Mã mô đun: MĐ29

Vị trí, tính chất, ý nghĩa và vai trò của mô đun:

 Sau khi học xong Lập trình web PHP & MySQL

 Cung cấp cho người học kiến thức và kỹ năng để có thể thiết kế, xây dựng và phát triển ứng dụng web theo mô hình MVC dựa trên CodeIgniter Framework.

Mục tiêu của mô đun:

 Về kiến thức:

+ Trình bày được MVC

+ Trình bày quá trình route và xử lý yêu cầu trong site CodeIgniter + Biết các bước tạo website PHP sử dụng framework CodeIgniter + Trình bày quy trình xây dựng Model, Controller

+ Trình bày quy trình truyền dữ liệu Model, Controller, View + Biết quy trình truy xuất CSDL

 - Về kỹ năng:

+ Tải và tạo site sử dụng framework CodeIgniter + Tạo Route

+ Tạo Model, Cotroller

+ Định nghĩa các thuộc tính, phương thức cho Model + Định nghĩa các hàm cho Controller

+ Tạo View cho các hàm trong Controller

+ Xây dựng các hàm truy xuất CSDL trong Model, Controller + Tạo các View hiển thị dữ liệu

 Về năng lực tự chủ và trách nhiệm:

+ Tham gia xây dựng các chức năng cho website sử dụng framework CodeIgniter.

+ Có thể vận dụng để xây dựng website thương mại, quảng bá chuyên nghiệp bằng các framework, CMS mã nguồn mở: Wordpress, Joomla, … + Lưu site đúng đường dẫn

+ Đặt tên tập tin, thư mục đúng quy định

(8)

+ Tự tìm hiểu tài liệu nâng cao kiến thức và kỹ năng xây dựng ứng dụng web theo mô hình MVC

Nội dung của mô đun:

(9)

BÀI 1: TỔNG QUAN Mã bài: 22.1

Giới thiệu:

MVC là mô hình ứng dụng web phổ biến hiện nay. Có nhiều framework mã nguồn mở dùng ngôn ngữ PHP với mô hình MVC, trong số đó có framework CodeIgniter.

Mục tiêu:

 Trình bày các thành phần trong mô hình MVC

 Biết lợi ích của framework CodeIgniter

 Trình bày dòng xử lý của CodeIgniter sau khi tiếp nhận yêu cầu

 Tự tìm hiểu các thông tin khác trên trang CodeIgniter

 Đảm bảo an toàn cho người và thiết bị Nội dung chính:

1. Mô hình MVC

Model View Controller là một mô hình kiến trúc theo hướng đối tượng, cho phép người phát triển tách một ứng dụng thành 3 thành phần chính:

 Model: thành phần đại diện cho dữ liệu của ứng dụng, bao gồm cả chức năng kiểm tra tính hợp lệ của dữ liệu.

 View: thành phần đảm trách việc hiển thị dữ liệu và các thành phần trong giao diện người dùng.

 Controller: thành phần có trách nhiệm tiếp nhận và xử lý các yêu cầu gửi đến cho ứng dụng, làm nhiệm vụ điều phối công việc giữa View và Model.

 Việc phát triển ứng dụng, nâng cấp, bảo trì và thử nghiệm trở nên đơn giản và dễ dàng hơn.

Hình 1.1. Các thành phần trong mô hình MVC

(10)

Hình 1.2. Hoạt động của mô hình MVC 2. CodeIgniter

Là mã nguồn mở giúp dễ dàng xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ PHP với nhiều ưu điểm.

 Miễn phí

 Dung lượng nhỏ

 Nhanh

 Tạo URL rõ ràng theo SEO

 Không yêu cầu engine

 Có đầy đủ thư viện hỗ trợ việc truy xuất CSDL, xử lý gửi/nhận email, hình ảnh, upload tập tin

 Hỗ trợ xử lý phân trang

 …

(Xem thêm: http://codeigniter.com/userguide3/overview/features.html) 3. Dòng xử lý của ứng dụng web CodeIgniter

 Tập tin index.php khởi tạo các nguồn tài nguyên cần thiết.

 Route phân tích yêu cầu để quyết định công việc cần xử lý.

 Nếu tập tin cache đã có, sẽ được gửi trực tiếp đến trình duyệt.

(11)

 An toàn: trước khi controller được nạp, yêu cầu HTTP và dữ liệu nào được submit đều được lọc.

 Controller nạp model, thư viện, helper, và các nguồn tài nguyên cần thiết khác để xử lý đáp ứng cho yêu cầu cụ thể.

 Cuối cùng, view được diễn giải sau đó gửi cho trình duyệt. Nếu cache được bật thì view được lưu vào cache trước rồi mới giải quyết yêu cầu.

CÂU HỎI, BÀI TẬP

1.1. Tên và chức năng của các thành phần trong mô hình MVC?

1.2. Dòng xử lý của ứng dụng web CodeIgniter?

(12)

BÀI 2: TẠO ỨNG DỤNG CODEIGNITER ĐẦU TIÊN Mã bài: 22.2

Giới thiệu:

Bài này giúp HSSV tạo site mới từ mã nguồn CodeIgniter, khảo sát cấu trúc lưu trữ bên trong site được tạo từ framework CodeIgniter.

Mục tiêu:

 Biết địa chỉ để tải framework CodeIgniter

 Biết cú pháp URI trong website được viết theo mô hình MVC

 Tạo site bằng CodeIgniter framework

 Lưu site vào đúng đường dẫn Nội dung chính:

1. Tạo cơ sở dữ liệu

Tạo và nhập dữ liệu cho CSDL bookstore theo yêu cầu dưới.

 Table chude

 Table nxb

 Table tacgia

 Table sach

(13)

 Table thamgia

 Quan hệ

Dữ liệu

2. Tải mã nguồn và tạo site

Bước 1: truy cập trang web http://codeigniter.com

Bước 2: click chuột lên biểu tượng Download để tải mã nguồn

(14)

Bước 3: giải nén tập tin đã tải

Bước 4: copy các tập tin và thư mục bên trong vào C:\xampp\htdocs\IgniterSite1 (C:\xampp là thư mục củ gói XAMPP đã được cài đặt trên máy tính)

Hình 2.1. Mã nguồn CodeIgniter

Bước 5: Tạo IgniterSite1 đến C:\xampp\htdocs\IgniterSite1 trong DreamWeaver

(15)

4. Cấu trúc thư mục

Hình 2.2. Cấu trúc tập tin, thư mục bên trong site CodeIgniter

 config: chứa các tập tin cấu hình

 controllers: chứa các tập tin định nghĩa controller

 models: chứa các tập tin định nghĩa lớp đối tượng model

 views: chứa các tập tin giao diện (view)

CÂU HỎI, BÀI TẬP 2.1. Tải mã nguồn và tạo site tracuudiem

2.2. Tên thư mục chứa các tập tin cấu hình?

(16)

BÀI 3: ROUTING Mã bài: 22.3

Giới thiệu:

Công việc ngay sau khi tạo mới một site là phải cấu hình. Bên cạnh đó, còn phải định nghĩa route xử lý một số yêu cầu đặc biệt bên trong ứng dụng.

Mục tiêu:

 Biết quá trình xử lý yêu cầu của site

 Biết chức năng của route trong site

 Cấu hình cho site CodeIgniter framework

 Tạo một trang đơn giản

 Đặt tên tập tin, thư mục đúng quy tắc Nội dung chính:

1. Cấu hình site

1.1. Nhập thông tin cấu hình chung

Bước 1: mở tập tin application/config/config.php và cập nhật cho 2 dòng lệnh

Bước 2: mở tập tin application/config/database.php và cập nhật thông tin truy cập CSDL MySQL

(17)

1.2. Đọc thông tin cấu hình Cú pháp

Ví dụ: Mở tập tin application/views/welcome_message.php và cập nhật như sau:

Truy cập lại trang trên trình duyệt để xem kết quả.

1.3. Tạo thông tin cấu hình riêng

B1: Tạo tập tin cấu hình application/config/customconfig.php và nhập nội dung như sau:

B2: Tải tập tin cấu hình riêng. Mở tập tin application/controllers/Welcome.php và cập nhật cho hàm index

(18)

B3: Đọc thông tin cấu hình riêng

Mở tập tin application/views/welcome_message.php và cập nhật nội dung như sau:

5. Cấu trúc địa chỉ

Địa chỉ site theo mô hình MVC có cấu trúc tổng quát như sau:

Nếu không có method thì hàm hành động index sẽ được gọi.

 controller: lớp đối tượng nhận xử lý yêu cầu

 method: hàm hành động được gọi của controller

 arguments: tham số truyền vào hàm hành động

Ví dụ 1: http://localhost/ignitersite1/index.php/sach/chude/1

 controller: sach

 method: chude

 arguments: id=1

Ví dụ 2: http://localhost/ignitersite1/index.php/sach/xem/13412786

 controller: sach

 method: xem

 arguments: id=13412786

Ví dụ 3: http://localhost/ignitersite1/index.php/home/gioithieu

 controller: home

 method: gioithieu

(19)

 arguments: không có

Ví dụ 4: http://localhost/ignitersite1/index.php/home

 controller: home

 method: index

 arguments: không có

Ví dụ 5: http://localhost/ignitersite1/index.php

 controller: welcome (quy định trong tập tin application/config/routes.php)

 method: index

 arguments: không có 6. Cấu hình route mặc định

Mở tập tin application/config/routes.php. Xóa hết tất cả và cập nhật lại nội dung như sau:

Khi địa chỉ truy cập được tìm thấy trong tập tin routes.php thì sẽ được xử lý theo quy tắc bên trong routes.php. Ngược lại, yêu cầu sẽ được xử lý theo cấu trúc tổng quát (đã trình bày trong Mục 3.1).

Với định nghĩa route như trên, các controller, method và arguments sẽ được truyền khi truy cập địa chỉ tương ứng như sau:

Ví dụ 1: http://localhost/ignitersite1

 controller: home

 method: index

 arguments: không có

Ví dụ 2: http://localhost/ignitersite1/index.php/home/gioithieu

 controller: home

 method: view

 arguments: id=‘gioithieu’

Ví dụ 3: http://localhost/ignitersite1/index.php/home/lienhe

 controller: home

 method: view

 arguments: id=‘lienhe’

(20)

Khi truy cập các địa chỉ trên thì sẽ hiển thị kết quả sau:

Như phân tích với các ví dụ trên, ứng dụng cần phải có controller home với các hàm indexview.

Tạo tập tin application/controllers/Home.php với nội dung bên dưới.

Đã tạo xong controller home với các method (hàm hành động) index và view.

Truy cập trang theo địa chỉ của 3 ví dụ trên để xem kết quả.

CÂU HỎI, BÀI TẬP

Cập nhật tập tin application/config/routes.php và tạo các controller để hiển thị kết quả với địa chỉ truy cập tương ứng như sau:

http://localhost/ignitersite1/index.php/sach DANH MỤC SÁCH MỚI

http://localhost/ignitersite1/index.php/sach/chude/1 DANH MỤC SÁCH THUỘC CHỦ ĐỀ 1

http://localhost/ignitersite1/index.php/sach/chude/2 DANH MỤC SÁCH THUỘC CHỦ ĐỀ 2

http://localhost/ignitersite1/index.php/sach/nxb/6 DANH MỤC SÁCH THUỘC NXB 6

http://localhost/ignitersite1/index.php/sach/tacgia/9 DANH MỤC SÁCH THUỘC TÁC GIẢ 9

(21)

GỢI Ý, ĐÁP ÁN

 Tập tin routes.php

 Tập tin sach.php + Cách 1:

+ Cách 2:

 Cập nhật lại tập tin routes.php như thế nào cho phù hợp với cách 2?

(22)

BÀI 4: CONTROLLER Mã bài: 22.4

Giới thiệu:

Thành phần quan trọng tiếp nhận và xử lý yêu cầu chính là controller.

Mục tiêu:

 Trình bày khái niệm và công dụng của Controller

 Tạo được lớp đối tượng kế thừa controller

 Tạo các hàm hành động trong controller

 Đặt tên tập tin đúng quy định Nội dung chính:

1. Khái niệm

Controller là một lớp đối tượng được dẫn xuất từ CI_Controller, có chức năng tiếp nhận và xử lý yêu cầu được route chuyển đến. Bên trong controller chứa các hàm (hành động) xử lý theo từng yêu cầu cụ thể.

7. Tạo controller

Mỗi controller được định nghĩa trong một tập tin đặt trong thư mục application/

controllers. Mỗi controller là một lớp đối tượng được dẫn suất từ CI_Controller.

Cú pháp

<?php

defined(‘BASEPATH’) or exit (‘Truy cap trai phep’);

class <TênController> extends CI_Controller{

}

Chú ý: Tên controller phải bắt đầu bằng ký tự In. Tên tập tin giống với tên controller, có phần mở rộng là .php

Ví dụ:

Định nghĩa controller TacGia trong tập tin application/controllers/TacGia.php

8. Tạo hàm hành động

Mỗi hàm hành động là một phương thức xử lý bên trong controller.

(23)

Ví dụ:

Truy cập theo địa chỉ http://localhost/ignitersite1/index.php/tacgia để xem kết quả

Tạo thêm các hàm hành động cho controller TacGia như sau:

9. Tổ chức controller trong thư mục

Với các ứng dụng web lớn, CodeIgniter cho phép nhà phát triển tách/tổ chức các controller trong thư mục con. Ví dụ: các trang/chức năng quản lý nội dung được truy cập theo địa chỉ http://localhost/codeignitersite1/quantri

(24)

Bước 1: Tạo thư mục application/controllers/quantri

Bước 2: Tạo các controller trong thư mục application/controllers/quantri CÂU HỎI, BÀI TẬP

4.1. Tạo các controller Chude, Nxb, Sach với các hàm hành động bên trong, tương tự controller Tacgia đã xây dựng ở trên.

GỢI Ý, ĐÁP ÁN Tham khảo tập tin controller/Tacgia.php

(25)

BÀI 5: VIEW Mã bài: 22.5

Giới thiệu:

View là một trong những thành phần trong mô hình MVC, công dụng chính là trao đổi dữ liệu với controller và hiển thị kết quả.

Mục tiêu:

 Biết khái niệm và công dụng của view

 Thiết kế được view và tải view trong các hàm controller

 Truyền dữ liệu từ controller đến view

 Truyền dữ liệu từ view đến controller thông qua form

 Xử lý dữ liệu nhận được từ form

 Đảm bảo an toàn cho người và thiết bị Nội dung chính:

1. Khái niệm

View đơn giản là một trang web hoặc một một chức năng (header, footer, sidebar) đặt bên trong một view khác.

View không được gọi trực tiếp, nó phải được tải bằng lệnh bên trong controller.

10. Tạo view

Phân tích giao diện trang web theo hình ảnh ví dụ bên dưới.

(26)

Trong một website có nhiều trang. Hầu như các trang đề có bố cục, chức năng giống nhau, chỉ khác nhau về nội dung được hiển thị trên vùng rộng lớn nhất.

Xét giao diện trên, tài liệu HTML đơn giản có thể như sau:

2.1. Tạo view dùng chung

Các trang đều có bố cục và nội dung giống nhau trong hai thành phần (đã được đánh dấu trong các khung chữ nhật). Chúng ta lần lượt tạo các view tương ứng.

Bước 1: Tạo thư mục application/views/shared Bước 2: Tạo tập tin application/views/shared/p1.php

Bước 3: Tạo tập tin application/views/shared/p2.php

(27)

2.2. Tạo view nội dung cho các trang

Quy tắc chung: Với mỗi controller, chúng ta sẽ tạo một thư mục đặt bên trong application/views. Tiếp theo, chúng ta sẽ tạo các view đặt bên trong thư mục vừ tạo. Xét controller TacGia trong mục 3 ở bài trước, chúng ta có các hàm index, add và edit lần lượt là các trang Danh sách tác giả, Thêm tác giả và Sửa thông tin tác giả.

Bước 1: Tạo thư mục application/views/tacgia

Bước 2: Tạo tập tin application/views/tacgia/index.php để hiển thị nội dung cho hàm index

Lặp lại Bước 2 để tạo các tập tin hiển thị nội dung cho các hàm add và edit.

11. Tải view

Cập nhật hàm index trong controller TacGia để tải các view shared/p1.php, shared/p2.php và tacgia/index.php

Tương tự như vậy, cập nhật các hàm _new và edit.

Kiểm tra kết quả các trang theo địa chỉ lần lượt http://localhost/ignitersite1/index.php/tacgia http://localhost/ignitersite1/index.php/tacgia/add http://localhost/ignitersite1/index.php/tacgia/edit/1 12. Truyền dữ liệu đến view

Trong ví dụ bên dưới, chúng ta sẽ truyền danh sách tác giả từ hàm index đến view application/views/tacgia/index.php. Hiện tại, chúng ta chưa truy cập đến CSDL nên sẽ chúng ta sẽ tạo dữ liệu thử dưới dạng mảng.

Bước 1: Truyền dữ liệu đến view. Để truyền dữ liệu vào cho view, chúng ta chỉ cần đặt dữ liệu vào tham số thứ hai của hàm load->view.

(28)

Bước 2: Xử lý dữ liệu nhận được trên view.

Cập nhật nội dung tập tin application/views/tacgia/index.php

Kết quả có được khi truy cập địa chỉ

http://localhost/ignitersite1/index.php/tacgia

13. Form trên view

Bước 1: Cập nhật hàm add trong controller TacGia.

Bước 2: Tạo tập tin application/views/tacgia/add.php

(29)

form_open(‘tacgia/store’): tạo thẻ form có thuộc tính method= “post”

và action= “/index.php/tacgia/store” (dữ liệu sẽ được chuyển đến hàm store của controller TacGia).

Bước 3: Cập nhật hàm store trong controller TacGia

Kiểm tra kết quả: mở trang http://localhost/ignitersite1/index.php/tacgia/add.

Không nhập tên, click chuột lên nút Submit  Lỗi

Tiếp tục mở lại trang http://localhost/ignitersite1/index.php/tacgia/add. Nhập tên, click chuột lên nút Submit  Thành công

CÂU HỎI, BÀI TẬP

5.1. Tạo/cập nhật các controller và view tương ứng để có các trang hiển thị Danh sách chủ để, Danh sách NXB (Tạo dữ liệu thử dưới dạng mảng)

5.2. Tạo/cập nhật các controller và view tương ứng để có các trang chứa form cho phép nhập mới thông tin Chủ đề, NXB, Tác giả. (chưa cần ghi vào CSDL).

(30)

BÀI 6: MODEL Mã bài: 22.6

Giới thiệu:

Model là đối tượng chứa dữ liệu trao đổi giữa controller và view.

Mục tiêu:

 Trình bày khái niệm và công dụng của Model

 Tạo model

 Tải model trong controller

 Truyền dữ liệu từ model đến view

 Viết các hàm truy xuất CSDL trong model

 Đặt tên hàm đúng quy tắc

 Đảm bảo an toàn cho người và thiết bị Nội dung chính:

1. Khái niệm

Model là lớp đối tượng chính truy xuất CSDL. Ví dụ: để có thể đọc/thêm/xóa/sửa dữ liệu trên table TacGia, chúng ta cần tạo một model. Trong CodeIgniter, một model là một lớp đối tượng được dẫn xuất từ CI_Model. Mỗi model được định nghĩa trong một tập tin, đặt trong thư mục application/models.

2. Tạo model

Tạo tập tin application/models/tacgia_model.php để định nghĩa một lớp đối tượng tacgia_model là một model, thực hiện việc đọc/thêm/xóa/sửa dữ liệu trên table TacGia.

(31)

14. Định nghĩa các hàm trong model

3.1. Cập nhật hàm GetList (Đọc nhiều dòng dữ liệu)

3.2. Cập nhật hàm GetEntry (Đọc một dòng dữ liệu theo khóa)

(32)

3.3. Cập nhật hàm Insert (Thêm một dòng dữ liệu)

3.4. Cập nhật hàm Update (Cập nhật một dòng dữ liệu)

3.5. Cập nhật hàm Delete (Xóa một dòng dữ liệu)

15. Truy xuất CSDL thông qua model trong controller Cập nhật tập tin application/controllers/tacgia.php

4.1. Thêm hàm khởi tạo

load->helper: tải thư viện chứa các hàm hỗ trợ đọc nhanh các thông tin url, uri, … Có thể mở tập tin system/helpers/url_helper.php xem các hàm bên trong.

load->database: tải thư viện hỗ trợ truy xuất CSDL load->model: tải lớp đối tượng model

(33)

4.2. Cập nhật hàm index

4.3. Cập nhật tập tin application/views/tacgia/index.php

CÂU HỎI, BÀI TẬP

6.1. Tạo các model còn lại tương ứng với các table trong CSDL bookstore, tương tự tacgia_model đã thực hiện trong bài.

GỢI Ý, ĐÁP ÁN Tham khảo tập tin models/tacgia_model.php

(34)

BÀI 7: HOÀN CHỈNH CONTROLLER/VIEW Mã bài: 22.7

Giới thiệu:

Ba thành phần trong mô hình MVC phối hợp với nhau như thế nào sẽ được trình bày cụ thể và rõ ràng trong bài này.

Mục tiêu:

 Biết quy trình truy xuất CSDL trong controller

 Biết quy trình truyền dữ liệu đến view

 Tạo các trang truy xuất CSDL

 Đặt tên tập tin đúng quy tắc

 Đảm bảo an toàn cho người và thiết bị Nội dung chính:

1. Thêm dữ liệu

Cập nhật hàm store torng controller TacGia

16. Cập nhật dữ liệu

Bước 1: Cập nhật tập tin application/views/tacgia/index.php

(35)

Truy cập địa chỉ http://localhost/ignitersite1/index.php/tacgia để xem kết quả.

Bước 2: Cập nhật hàm edit trong controller TacGia

Bước 3: Tạo tập tin application/views/tacgia/edit.php

Bước 4: Cập nhật hàm update tron controller TacGia

(36)

17. Xóa dữ liệu

Cập nhật hàm delete trong controller TacGia

CÂU HỎI, BÀI TẬP

7.1. Hoàn chỉnh controller, view để có các trang danh sách/thêm/xóa/sửa dữ liệu trong bảng ChuDe

7.2. Hoàn chỉnh controller, view để có các trang danh sách/thêm/xóa/sửa dữ liệu trong bảng NXB

7.3. Hoàn chỉnh controller, view để có các trang danh sách/thêm/xóa/sửa dữ liệu trong bảng Sach

(37)

TÀI LIỆU THAM KHẢO [1]. http://codeigniter.com

Tài liệu tham khảo

Tài liệu liên quan

• Kỹ năng: Biết áp dụng, sử dụng quy tắc biến đổi BPT để giải BPT, biết BPT tương đương. • Xem trước bài 3-Bất phương trình một ẩn

- Phân biệt và trình bày hình thành hai khái niệm thời tiết và khí hậu - Hiểu nhiệt độ không khí và nguyên nhân có yếu tố này2.

Hoàn thành học phần này, sinh viên có thể nâng cao kỹ năng dịch đuổi (consecutive interpreting), tăng cường khả năng nghe hiểu và ghi nhớ thông tin, năng cao kĩ

• Kỹ năng: Biết áp dụng, sử dụng quy tắc biến đổi BPT để giải BPT, biết BPT tương đương. • Xem trước bài 3-Bất phương trình một ẩn

Định hướng phát triển năng lực: năng lực nhận thức Để Trình bày vững các bước lắp đặt mạch điện 2 công tắc 3 cực điều khiển 1 đèn thì3. chúng ta

Định hướng phát triển năng lực: năng lực nhận thức Để Trình bày vững các bước lắp đặt mạch điện 2 công tắc 3 cực điều khiển 1 đèn thì.. chúng ta

Bài này cung cấp cho HSSV kiến thức và kỹ năng sử dụng các đối tượng quản lý của PHP để truy xuất thông tin người truy cập.

+ Đồ án giúp sinh viên thực hiện được trình tự các bước thiết kế, thiết lập sơ đồ tính, đặc điểm cấu tạo các chi tiết, bố trí cốt thép,… và cách trình bày bản vẽ kết cấu.. - Về kỹ năng: