Tải bản đầy đủ (.pdf) (102 trang)

Xây dựng Website bán mỹ phẩm trực tuyến sử dụng Framework Laravel

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.27 MB, 102 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
-----------------

NGUYỄN LINH

XÂY DỰNG WEBSITE BÁN MỸ PHẨM TRỰC
TUYẾN SỬ DỤNG FRAMEWORK LARAVEL

KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CỬ NHÂN CƠNG NGHỆ THÔNG TIN

Đà Nẵng, tháng 5/2016


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
-----------------

XÂY DỰNG WEBSITE BÁN MỸ PHẨM TRỰC
TUYẾN SỬ DỤNG FRAMEWORK LARAVEL
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CỬ NHÂN CÔNG NGHỆ THÔNG TIN
Người hướng dẫn:
ThS. Ngơ Đình Thưởng
Người thực hiện:
NGUYỄN LINH
(Khóa 2012-2016)


Đà Nẵng, tháng 5/2016


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

MỤC LỤC
MỞ ĐẦU ........................................................................................................... 1
1. Tính cấp thiết của đề tài: ......................................................................... 1
2. Mục tiêu nghiên cứu: .............................................................................. 1
3. Đối tượng, phạm vi nghiên cứu: ............................................................. 1
4. Phương pháp nghiên cứu: ....................................................................... 1
5. Bố cục đề tài:........................................................................................... 2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ................................................................. 3
1.1. GIỚI THIỆU FRAMEWORK LARAVEL: ........................................... 3
1.1.1. Khái niệm: ......................................................................................... 3
1.1.2. Lịch sử phát triển của Framework Laravel: ...................................... 3
1.1.3. Ưu điểm của Laravel:........................................................................ 5
1.1.4. Các ví dụ cơ bản như : ...................................................................... 6
1.2. CÀI ĐẶT:................................................................................................ 8
1.2.1. Yêu cầu hệ thống: ............................................................................. 8
1.2.2. Hướng dẫn cài đặt: ............................................................................ 8
1.3. MƠ HÌNH MVC TRONG FRAMEWORK LARAVEL: .................... 12
1.3.1. Controller: ....................................................................................... 13
1.3.2. View: ............................................................................................... 13
1.3.3. Model: ............................................................................................. 14
1.4. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU: ...................................................... 15
1.5. HƯỚNG DẪN SỬ DỤNG LAVAREL FRAMEWORK..................... 17
1.5.1. Cách sử dụng Route: ....................................................................... 17

1.5.2. Sử dụng View: ................................................................................ 23
1.5.3. Sử dụng Controller trong Laravel 5: ............................................... 33
1.3.4. Tạo bảng và khoá ngoại trong database Migration:........................ 39
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .............................. 47
2.1. MỤC TIÊU VÀ YÊU CẦU ĐẶT: ........................................................ 47
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

i


Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

2.1.1. Mục tiêu: ......................................................................................... 47
2.1.2. Yêu cầu hệ thống: ........................................................................... 47
2.2. PHÂN TÍCH HỆ THỐNG: ................................................................... 48
2.2.1. Yêu cầu đề tài:................................................................................ 48
2.2.2. Hoạt động của hệ thống cửa hàng trên mạng: ................................ 48
2.2.3. Đặc tả quy trình nghiệp vụ: ............................................................. 50
2.3. XÂY DỰNG BIỂU ĐỒ USER CASE:................................................. 53
2.3.1. Mơ hình Use case tổng quát :.......................................................... 53
2.3.2. Phân rã biểu đồ User case và kịch bản: .......................................... 54
2.4 Thiết kế cơ sở dữ liệu ............................................................................. 66
2.4.1. Nhóm các bảng độc lập: .................................................................. 66
2.4.2. Nhóm các bảng có quan hệ: ............................................................ 72
CHƯƠNG 3: KẾT QUẢ ĐẠT ĐƯỢC ........................................................... 78
3.1. GIAO DIỆN TRANG KHÁCH HÀNG: .............................................. 78
3.1.1. Trang chủ: ....................................................................................... 78
3.1.2. Trang xem chi tiết sản phẩm: .......................................................... 79

3.1.3. Giao diện kết quả tìm kiếm: ............................................................ 80
3.1.4. Giao diện giỏ hàng: ......................................................................... 80
3.1.5. Giao diện thanh toán trực tiếp bằng ngân lượng: ........................... 81
3.1.6. Giao diện thanh tốn bằng hình thức COD: ................................... 81
3.1.7. Giao diện liên hệ: ............................................................................ 82
3.1.8. Giao diện giới thiệu: ....................................................................... 82
3.1.9. Giao diện tin tức:............................................................................. 83
3.2. GIAO DIỆN TRANG QUẢN TRỊ: ...................................................... 83
3.2.1. Giao diện đăng nhập: ...................................................................... 83
3.2.2. Giao diện trang chủ quản trị: .......................................................... 84
3.2.3. Giao diện quản lý sản phẩm: ........................................................... 84
3.2.4. Giao diện quản lý danh mục sản phẩm: .......................................... 87
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

ii


Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

3.2.5. Giao diện quản trị giỏ hàng:............................................................ 87
3.2.6. Giao diện chi tiết giỏ hàng: ............................................................. 88
3.2.7. Giao diện thống kê đơn hàng: ......................................................... 88
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................................... 89
DANH MỤC TÀI LIỆU THAM KHẢO ........................................................ 90

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

iii



GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

LỜI CẢM ƠN
Trước tiên, em thành thật xin tỏ lòng biết ơn sâu sắc của mình đến thây
Ngơ Đình Thưởng đã nhiệt tình hướng dẫn, nhận xét và đóng góp nhiều ý kiến
quý báo cho em những lúc gặp khó khăn trong suốt quá trình thực hiện đề tài
này.
Em xin chân thành cảm ơn các thầy cơ giáo đã tận tình dạy dỗ và truyền
đạt những kiến thức quý báu cho em trong suốt bốn năm học tại Khoa Tin
học, trường Đại học Sư phạm Đà Nẵng và tạo điều kiện cho em thực hiện và
hồn thành đề tài tốt nghiệp.
Bên cạnh đó em ln nhận được sự giúp đỡ nhiệt tình từ bạn bè và gia
đình, đã động viên góp ý và cung cấp tài liệu để đề tài hoàn thành đúng thời
gian.
Mặc dù hết sức cố gắng, song với điều kiện thời gian và khả năng còn
hạn chế nên đề tài khơng tránh khỏi những hạn chế và cịn nhiều thiếu sót.
Em kính mong sự chỉ bảo, đóng góp ý kiến của thầy cô và các bạn để đề tài
của em được tốt hơn.
Cuối cùng, em xin chân thành cảm ơn các thầy cơ trong hội đồng bảo vệ
khố luận tốt nghiệp, đã dành thời gian q báu của mình để nhận xét, đánh
giá và chấm đề tài.
Xin chân thành cảm ơn!
Đà Nẵng, tháng 05 năm 2016
Sinh viên thực hiện

Nguyễn Linh


Sinh viên thực hiện: Nguyễn Linh – 12CNTT

iv


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

LỜI CAM ĐOAN
Tơi xin cam đoan đây là đề tài nghiên cứu của riêng tơi dưới sự hướng
dẫn của thầy Ngơ Đình Thưởng.
Tơi có tham khảo tài liệu trên mạng để thực hiện đề tài.
Đà Nẵng, tháng 5 năm 2016
Sinh viên thực hiện

Nguyễn Linh

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

v


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

DANH MỤC TỪ VIẾT TẮT
STT


Từ viết tắt

Nghĩa

1

CSDL

Cơ sở dữ liệu

2

DB

Database

3

HTML

HyperText Markup Language

2

HQT CSDL

Hệ quản trị cơ sở dữ liệu

3


MVC

Model, View, Controler

4

OCD

Thanh toán bằng bưu điện

5

PK

Primary Key - Khố chính của lớp

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

vi


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

DANH MỤC BẢNG
Bảng 1.1: Các kiểu Index ................................................................................ 44
Bảng 2.1: Kịch bản User case thêm sản phẩm ................................................ 56
Bảng 2.2: Kịch bản Use case sửa sản phẩm .................................................... 57

Bảng 2.3: Kịch bản Use case xoá sản phẩm.................................................... 58
Bảng 2.5: Kịch bản Use case thêm hàng vào giỏ hàng ................................... 60
Bảng 2.6: Kịch bản Use case xoá hàng trong giỏ hàng................................... 61
Bảng 2.7: Kịch bản Use case gửi đơn hàng .................................................... 62
Bảng 2.8: Kịch bản Use case thanh toán đơn hàng ......................................... 65
Bảng 2.8: Phân tích lớp thiensu_db.news ....................................................... 67
Bảng 2.9: Phân tích lớp thiensu_db.settings ................................................... 68
Bảng 2.10: Phân tích lớp thiensu_db.contacts ................................................ 69
Bảng 2.11: Phân tích lớp thiensu_db. Banners ............................................... 69
Bảng 2.12: Phân tích lớp thiensu_db. password_resets .................................. 70
Bảng 2.13: Phân tích lớp thiensu_db. Menus.................................................. 70
Bảng 2.14: Phân tích lớp thiensu_db. Migrations ........................................... 71
Bảng 2.15: Phân tích lớp thiensu_db. Users .................................................. 71
Bảng 2.16: Phân tích lớp thiensu_db. Pays .................................................... 72
Bảng 2.17: Phân tích lớp thiensu_db.cates ..................................................... 73
Bảng 2.18: Phân tích lớp thiensu_db.orders ................................................... 74
Bảng 2.19: Phân tích lớp thiensu_db.products................................................ 75
Bảng 2.20: Phân tích lớp thiensu_db.order_details ....................................... 76
Bảng 2.21: Phân tích lớp thiensu_db.product_ images ................................... 77

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

vii


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

DANH MỤC HÌNH ẢNH

Hình 1.1: Tỉ lệ người dùng Lavarel so với các framework khác năm 2013 ..... 3
Hình 1.2: Lịch sử phát triển của framework Lavarel ........................................ 5
Hình 1.3: Tải bộ cài đặt laravel ......................................................................... 8
Hình 1.4: Đổi tên thư mục chứa laravel bước 1 ................................................ 9
Hình 1.5: Đổi tên thư mục chứa laravel bước 2 ................................................ 9
Hình 1.6: Cấu trúc thư mục laravel ................................................................ 10
Hình 1.7: Điều chỉnh URL cho Laravel .......................................................... 11
Hình 1.8: Chạy lệnh php artisan generate trên terminal ................................. 11
Hình 1.9: Key trong file app.php được tự động điền ...................................... 11
Hình 1.10: Kết quả chạy Laravel lần đầu ........................................................ 12
Hình 1.11: Cấu trúc mơ hình MVC ................................................................. 13
Hình 1.12: Giao diện phpMyAdmin ............................................................... 16
Hình 1.13: Mơ hình hoạt động một ứng dụng web động ................................ 16
Hình 2.1: Mơ tả quá trình thêm sản phẩm vào giỏ hàng ................................. 50
Hình 2. 2: Mơ tả q trình thêm sản phẩm vào giỏ hàng ................................ 51
Hình 2.3: Mơ tả q trình thêm sản phẩm vào giỏ hàng ................................. 52
Hình 2.4: Mơ hình User Case tổng qt .......................................................... 53
Hình 2.5: Mơ tả quá trình phân rã User Case cập nhật ................................... 54
Hình 2.6: Mơ tả q trình phân rã User Case cập nhật sản phẩm .................. 55
Hình 2.7: Mơ tả q trình phân rã User Case đặt hàng ................................... 59
Hình 2.8: Mơ tả quá trình phân rã User Case đặt hàng ................................... 63
Hình 2.9: Sơ đồ các lớp trong cơ sở dữ liệu.................................................... 66
Hình 3.1: Giao diện trang chủ người dùng 1.................................................. 78
Hình 3.2: Giao diện trang chủ người dùng 2.................................................. 78
Hình 3.3: Giao diện xem chi tiết sản phẩm .................................................... 79
Hình 3.4: Giao diện kết quả tìm kiếm ............................................................. 80
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

viii



Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

Hình 3.5: Giao diện giỏ hàng .......................................................................... 80
Hình 3.6: Giao diện thanh tốn COD khơng có tài khoản .............................. 81
Hình 3.7: Giao diện liên hệ ............................................................................ 82
Hình 3.8: Giao diện giới thiệu ......................................................................... 82
Hình 3.9: Giao diện tin tức .............................................................................. 83
Hình 3.10: Giao diện đăng nhập admin .......................................................... 83
Hình 3.11: Giao diện trang chủ admin ............................................................ 84
Hình 3.12: Giao diện quản lý sản phẩm .......................................................... 84
Hình 3.13: Giao diện thêm sản phẩm mới ...................................................... 85
Hình 3.14: Giao diện sửa sản phẩm ................................................................ 86
Hình 3.15: Giao diện quản lý danh mục sản phẩm ........................................ 87
Hình 3.16: Giao diện quản lý giỏ hàng .......................................................... 87
Hình 3.17: Giao diện chi tiết giỏ hàng ............................................................ 88
Hình 3.18: Giao diện thống kê đơn hàng ........................................................ 88

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

ix


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

MỞ ĐẦU

1. Tính cấp thiết của đề tài:
Trong thực tế hiện nay nhu cầu làm đẹp của con người ngày càng tăng,
nhưng lại khơng có thời gian để tới các cửa hàng mỹ phẩm để mua sắm những
loại mỹ phẩm cần dùng. Dựa vào sự phát triển như vũ bão của công nghệ
thông tin như hiện nay tôi đã nãy sinh ra ý tưởng xây dựng hệ thống bán mỹ
phẩm trực tuyến giúp cho khách hàng tiết kiệm thời gian và công sức nhưng
vẫn có được món hàng mình cần mua.
2. Mục tiêu nghiên cứu:
Với những ký do đặt ra như thế, việc nghiên cứu và xây dựng website
bán mỹ phẩm trực tuyến phải đảm bảo các tính năng cần thiết và cơ bản như
sau: Cung cấp đầy đủ thơng tin và chính xác về các sản phẩm cho khách hàng.
Xây dựng giỏ hàng trực tuyến cho khách hàng, khách hàng có thể mua hàng
trực tuyến. Thông tin về khách hàng phải được bảo mật. Người quản trị
website có thể quản lý tồn bộ các hoạt động của hệ thống.
3. Đối tượng, phạm vi nghiên cứu:
Nghiên cứu và sử dụng ngôn ngữ HTML, CSS và Boostraps để xây dựng
giao diện website.
Sử dụng hệ quản trị cơ sở dữ liệu MYSQL để xây dựng và quản trị cơ sở
dữ liệu của website.
Sử dụng framework Laravel để kết nối cơ sở dữ liệu và truy xuất thành
file HTML ở giao diện cho người dùng sử dụng.
4. Phương pháp nghiên cứu:
Nghiên cứu lý thuyết về các vấn đề liên quan.
Xem các ví dụ liên quan tới lý thuyết sau đó thực hiện trở lại cho hiểu rõ
lý thuyết.
Vận dụng vào để hoàn thành dự án thực tế.
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

1



Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

5. Bố cục đề tài:
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Tìm hiểu framework Laravel để quản trị nội dung website là nội dung
chủ đạo trong quá trình xây dựng hệ thống. Nghiên cứu hệ quản trị cơ sở dữ
liệu MySQL để lưu trữ dữ liệu của hệ thống. Sử dụng Bootstrap để thiết kế
giao diện website.
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Phân tích các yêu cầu từ thực tế của người dùng để hình thành các chức
năng đắp ứng được các yêu cầu đó. Phân quyền cho hệ thống bao gồm: Khách
hàng và quản trị viên. Khách hàng có quyền truy cập vào hệ thống thực hiện
các thao tác mà hệ thống cho phép. Quản trị viên có quyền cao nhất quản lý
mọi hoạt động của hệ thống.
CHƯƠNG 3: KẾT QUẢ ĐẠT ĐƯỢC
Là kết quả từ việc kết hợp việc phân tích hệ thống với nghiên cứu lý
thuyết để hoàn thành website bán mỹ phẩm trực tuyến.

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

2


Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. GIỚI THIỆU FRAMEWORK LARAVEL:
1.1.1. Khái niệm:
Laravel là một nền tảng ứng dụng web mã nguồn mở được viết bằng
ngơn ngữ PHP dựa theo mơ hình MVC. Nó là framework khá mới mẻ, ra đời
vào tháng 04-2011 và cha đẻ của nó Taylor Otwell. Việc tiếp cận và sử dụng
Laravel cũng giống như các framework kháck không phải là vấn đề quá khó
khăn. Các nhà phát triển framework Laravel đã xây dựng hệ thống hướng dẫn
sử dụng khá hồn chỉnh và đầy đủ. Nó giúp cho các lập trình viên tiết kiệm
thời gian, cơng sức và chi phí để xây dựng một website.

Hình 1.1: Tỉ lệ người dùng Lavarel so với các framework khác năm 2013
1.1.2. Lịch sử phát triển của Framework Laravel:
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

3


Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

Bản Laravel beta đầu tiên được phát hành vào ngày 9/6/2011, tiếp đó
là Laravel 1 phát hành trong cùng tháng. Laravel 1 bao gồm các tính năng
như xác thực, bản địa hóa, model, view, session, định tuyến và các cơ cấu
khác, nhưng vẫn cịn thiếu controller, điều này làm nó chưa thật sự là một
MVC framework đúng nghĩa.
Laravel 2 được phát hành vào tháng 9 năm 2011, mang đến nhiều cài
tiến từ tác giả và cộng đồng. Tính năng đáng kể bao gồm hỗ trợ controller,
điều này thực sự biến Laravel 2 thành một MVC framework hoàn chỉnh, hỗ

trợ Inversion of Control (IoC), hệ thống template Blade. Bên cạnh đó, có một
nhược điểm là hỗ trợ cho các gói của nhà phát triển bên thứ 3 bị gỡ bỏ.
Laravel 3 được phát hành vào tháng 2 năm 2012, với một tấn tính năng
mới bao gồm giao diện dòng lệnh (CLI) tên “Artisan”, hỗ trợ nhiều hơn cho
hệ thống quản trị cơ sở dữ liệu, chức năng ánh xạ cơ sở dữ liệu Migration, hỗ
trợ “bắt sự kiện” trong ứng dụng, và hệ thống quản lý gói gọi là “Bundles”.
Lượng người dùng và sự phổ biến tăng trưởng mạnh kể từ phiên bản Laravel
3.
Laravel 4, tên mã “Illuminate”, được phát hành vào tháng 5 năm 2013.
Lần này thực sự là sự lột xác của Laravel framework, di chuyển và tái cấu
trúc các gói hỗ trợ vào một tập được phân phối thông qua Composer, một
chương trình quản lý gói thư viện phụ thuộc độc lập của PHP. Bố trí mới như
vậy giúp khả năng mở rộng của Laravel 4 tốt hơn nhiều so với các phiên bản
trước. Ra mắt lịch phát hành chính thức mỗi sáu tháng một phiên bản nâng
cấp nhỏ. Các tính năng khác trong Laravel 4 bao gồm tạo và thêm dữ liệu
mẫu (database seeding), hỗ trợ hàng đợi, các kiểu gởi mail, và hỗ trợ “xóa
mềm” (soft-delete: record bị lọc khỏi các truy vấn từ Eloquent mà khơng
thực sự xóa hẳn khỏi DB).

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

4


Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

Laravel 5 được phát hành trong tháng 2 năm 2015, như một kết quả thay
đổi đáng kể cho việc kết thúc vòng đời nâng cấp Laravel lên 4.3. Bên cạnh

một loạt tính năng mới và các cải tiến như hiện tại, Laravel 5 cũng giới thiệu
cấu trúc cây thư mục nội bộ cho phát triển ứng dụng mới. Những tính năng
mới của Laravel 5 bao gồm hộ trợ lập lịch định kỳ thực hiện nhiệm vụ thơng
qua một gói tên là “Scheduler”, một lớp trừu tượng gọi là “Flysystem” cho
phép điều khiển việc lưu trữ từ xa đơn giản như lưu trữ trên máy local – dễ
thấy nhất là mặc định hỗ trợ dịch vụ Amazone S3, cải tiến quản lý assets
thông qua “Elixir”, cũng như đơn giản hóa quản lý xác thực với các dịch vụ
bên ngồi bằng gói “Socialite”.
Laravel 5.1 phát hành vào tháng 6 năm 2015, là bản phát hành đầu tiên
nhận được hỗ trợ dài hạng (LTS) với một kết hoạch fix bug lên tới 2 năm vào
hỗ trợ vá lỗi bảo mật lên tới 3 năm. Các bản phát hành LTS của Laravel được
lên kế hoạch theo mỗi 2 năm.

Hình 1.2: Lịch sử phát triển của framework Lavarel
1.1.3. Ưu điểm của Laravel:
Được thiết kế theo mơ hình Model-View-Controller: Mơ hình MVC giúp
tách thành phần hiển thị giao diện (presentation) và xử lý (business logic) của
một phần mềm thành những thành phần độc lập, từ đó giúp cho việc thiết kế,
xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mở rộng của phần
mềm. CodeIgniter vận dụng mơ hình này trong thiết kế, giúp tách biệt các tập

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

5


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp


tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ
bảo trì.
Hệ thống tài liệu (document) đã được làm lại một cách cẩn thận và rõ
ràng hơn: Mỗi trang tài liệu đã được dành vô số thời gian tỉ mỉ để chăm chút
cẩn thận. Điều này cũng giúp cho người sử dụng nhanh chóng nắm được cách
sử dụng Laravel, từ đó nhiều người sử dụng nó hơn. Hệ thống tài liệu lần này
đi kèm với khả năng tìm kiếm real-time và auto-complete.
Việc quản lý layout thật sự giản đơn. Dễ dàng tích hợp các thư viện của
Zend và các gói bundle (giống như moduel) vào project. Có rất nhiều gói
bundle được cộng đồng mạng build sẵn và chia sẻ trên Internet.
Laravel hỗ trợ nhiều cách viết để ngắn gọn nhất có thể và nhiều cách viết
khác nhau: Như Fluent Query Builder và Eloquent .
1.1.4. Các ví dụ cơ bản như :
- Tìm tài khoản theo Id:
$account = Account::find(1900); // tìm user có id là 1900.
- Tìm tài khoản theo email và password khi login:
$account=Account::where_email_password('matbao.technicaldept@gm
ail.com','19001830')->first();
//

tìm

user

theo

trường

email




giá

trị



, theo trường password có giá trị là
19001830.
- Tạo mới tài khoản:
$account = Account::create(array(
'email' => '',
'password ' => '19001830',
)
);
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

6


Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

- Hoặc có thể tạo mới tài khoản bằng cách sau:
$account = new Account;
$account ->email = '';
$account ->password = '62888999';
$account ->save();

- Chỉnh sửa tài khoản theo Id :
$account = Account::find(1);
$account ->email = '';
$account ->password = '38681999';
$account ->save();
- Xóa tài khoản theo Id:
account::find(1)->delete();
- Phân trang trong laravel cực kỳ đơn giản :
$per_page = 10;
$accounts = Account::paginate($per_page);
//nếu muốn sắp xếp thì thêm order_by vào như thế này
$accounts = Account::order_by('id','desc')->paginate($per_page);
Laravel sử dụng Blade Template Engine: Rất nhẹ nhàng mà lại cực kỳ
hữu dụng. Bạn chỉ cần có 1 trang master template (template sườn chung) sẽ
được sử dụng và kế thừa từ các file template con.
Khi làm việc với Route trong Laravel, các bạn có thể Group các rule
(quy định) lại với nhau, các rule con nằm trong rule mẹ sẽ chịu ảnh hưởng.
Ví dụ:
Route::group( array( ‘before’=>’auth’), function(){
Route::get(‘admin/contacts’,’AdminController@contacts’);
Route::get(‘admin/deletessh’,’AdminController@deletessh’);
Route::post(‘admin/deletessh’,’AdminController@dodel’);
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

7


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp


Route::get(‘admin/viewcontact/{id}’,’AdminController@viewcontact’);
}
Có thể thấy các rule con bên trong trước khi được thực thi sẽ phải chạy
qua rule mẹ để kiểm tra, đúng thì nó mới cho chạy.
1.2. CÀI ĐẶT:
1.2.1. Yêu cầu hệ thống:
Trước tiên khi cài đặt Laravel, cần phải đảm bảo rằng Apache, PHP,
MySQL đã được cài đặt. Framework Lavarel 5.1 có một vài yêu cầu về hệ
thống cụ thể như sau:
- PHP >= 5.5.9
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
1.2.2. Hướng dẫn cài đặt:
a. Download bộ nguồn Laravel:
Download

bộ

nguồn

Lavarel

về

tại

website


.

Hình 1.3: Tải bộ cài đặt laravel

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

8


Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

Sau khi các bạn download về hãy bỏ nó vào thư mục gốc
c:\xampp\htdocs\. Các bạn có thể đổi tên tùy ý giống như khi cài đặt
CodeIgniter. Mình sẽ đổi tên từ laravel-4.1.8

Hình 1.4: Đổi tên thư mục chứa laravel bước 1
thành laravel-toidongian.com.

Hình 1.5: Đổi tên thư mục chứa laravel bước 2
b. Download composer.phar:
Khi download laravel-4.1.8 lúc nãy có để ý thấy điều gì không, điều đặc
biệt ở đây là file laravel-4.1.8 mà vừa download chỉ nặng có 39kb. Đó là vì
file đó chỉ chứa các folder cơ bản thơi, cịn các class và các gói hỗ trợ thì phải
nhờ composer.phar để download và cài đặt. Truy cập vào địa chỉ
sau

/>

và kéo xuống cuối cùng

chọn LATEST SNAPSHOT để download file composer.phar, sau đó hãy bỏ
vào trong thưc mục Laravel trước đó, folder mẫu được mơ tả theo hình sau:

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

9


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

Hình 1.6: Cấu trúc thư mục laravel
c. Thao tác cài đặt chính:
- Đối với máy tính chạy hệ điều hành window: Các bạn nhấn nút window
+ R và gõ CMD chạy nó dưới quyền administrator. Đối với các máy tính chạy
hệ điều hành Mac OS hoặc Linux chúng ta tìm và mở ứng dụng terminal.
Sau đó gõ lệnh cd c:\xampp\htdocs\laravel-toidongian.com dịng l ệnh này dẫn
đến thư mục laravel-toidongian.com chúng ta đã tạo trước và nhấn Enter, tiếp
đến các bạn gõ lệnh sau : phpcomposer.phar install . Chờ cho nó download
hết các gói hỗ trợ cho đến khi hoàn thành.
- Để hệ thống chạy được cần tuỳ chỉnh lại một số điểm sau:
• Vào

đường

dẫn


c:\xampp\htdocs\laravel-

toidongian.com\app\config\app.php tìm đến dịng 29 để chỉnh lại URl cho
Laravel.

URL

sau

của

mình

sau

khi

chỉnh

lại

sẽ



‘url’=>’http://localhost/laravel-toidongian.com ’.

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

10



Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

Hình 1.7: Điều chỉnh URL cho Laravel
• Kế tiếp bật ứng dụng terminal lên và gõ lệnh php artisan key:generate
mục đích của lệnh này là tăng tính bảo mật của những cookie và session cho
website.

Hình 1.8: Chạy lệnh php artisan generate trên terminal
• Khi bạn gõ xong lệnh trên thì hãy đi đến dòng 68 của file app.php. Lúc
này thấy một điều là key tại dịng này đã được tự động điền.

Hình 1.9: Key trong file app.php được tự động điền
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

11


GVHD: ThS Ngơ Đình Thưởng

Khố luận tốt nghiệp

- Kiểm tra quá trình cài đặt bằng cách chạy thử hệ thống website đã được
cài đặt:
Mở

trình


duyệt

lên





http://localhost/laravel-

toidongian.com/public nếu bạn nhận được hình ảnh như dưới đây thì đã cài
đặt thành cơng Laravel FrameWork.

Hình 1.10: Kết quả chạy Laravel lần đầu
1.3. MƠ HÌNH MVC TRONG FRAMEWORK LARAVEL:
Viết tắt của MVC là: Model, View, Controller.
Trong đó:
- Model: thành phần chứa dữ liệu.
- View: thành phần hiển thị giao diện trên màn hình.
- Controller: thành phần kiểm soát model và điều khiển view để hiển thị
cho người dùng.

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

12


Khố luận tốt nghiệp


GVHD: ThS Ngơ Đình Thưởng

Hình 1.11: Cấu trúc mơ hình MVC
1.3.1. Controller:
Khi được Router gọi, controller sẽ tiếp nhận lời gọi và xử lý.
Nó có thể trả lại trực tiếp dạng text (trả lại một chuỗi bất kỳ, mở rộng ra
thì có thể là xml, json, html, v.v...).
Nó có thể gọi View: Tạo và truyền hoặc khơng truyền tham số cho view,
thiết lập master layout.
Nó có thể gọi các hàm của Model để tương tác với cơ sở dữ liệu.
Nhiều trường hợp thì cách làm chung là controller sẽ gọi các hàm của
model, ghi vào biến global hay local tùy bạn, sau đó phân

Sinh viên thực hiện: Nguyễn Linh – 12CNTT

13


Khố luận tốt nghiệp

GVHD: ThS Ngơ Đình Thưởng

Trong view chúng ta có thể có sub view, dùng @include, chi tiết xem
link Blade Templating ở trên.
Ví dụ về cách sử dụng Model, View,Controler:
Vào app/controllers/HomeController.php, thay dòng
return "Xin chao $name";
thành
return View::make('home.hello', array('name' => $name));
Tham số đầu tiên chính là nơi chứa tập tin cần render, ‘home.hello’ thì

tập tin hello.blade.php sẽ nằm tại thư mục app/views/home
Tham số thứ hai và các biến local cần truyền vào view.
Nội dung tập tin hello.blade.php như sau:
Xin chao <strong>{{{ $name }}}</strong>
Refresh trình duyệt, kết quả nhận được là “Xin chao abc.” với chữ abc
được in đậm.
1.3.3. Model:
Chạy trực tiếp các câu SQL
Class DB của Laravel hỗ trợ select, insert, update, delete
Ví dụ:
$results = DB::select('select * from users where id = ?', array(1));
DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));
DB::update('update users set votes = 100 where name = ?',
array('John'));
DB::delete('delete from users');
Với các câu lệnh khác thì ta sẽ dử dụng hàm statement của class DB, vd:
DB::statement('drop table users');
Để thực hiện dạng giao tác thì class DB cũng hỗ trợ:
DB::transaction(function(){
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

14


×