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

Luận Văn Tốt Nghiệp phát triển hệ thống website thương mại điện tử bằng ngôn ngữ 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 (2.42 MB, 100 trang )

Khoá luận tốt nghiệp

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

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


Khoá 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 toá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


Khoá 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


Khoá luận tốt nghiệp


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

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à
hoàn thành đề tài tốt nghiệp.
Bên cạnh đó em luôn 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ệ
khoá luận tốt nghiệp, đã dành thời gian quí 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



Khoá luận tốt nghiệp

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

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


Khoá luận tốt nghiệp

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

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 - Khoá chính của lớp

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

vi


Khoá luận tốt nghiệp

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

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


Khoá luận tốt nghiệp

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

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ả quá trình thêm sản phẩm vào giỏ hàng................................ 51
Hình 2.3: Mô tả quá 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 quát.......................................................... 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ả quá trình phân rã User Case cập nhật sản phẩm.................. 55
Hình 2.7: Mô tả quá 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


Khoá 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 toá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


Khoá luận tốt nghiệp

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

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ý toà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


Khoá 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


Khoá 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á hoà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


Khoá 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


Khoá 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 ngoà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


Khoá luận tốt nghiệp

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

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


Khoá 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


Khoá luận tốt nghiệp

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

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


Khoá 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


Khoá luận tốt nghiệp

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

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


Khoá 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


Khoá luận tốt nghiệp

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

- 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


Khoá 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 tích và gọi view
tương ứng, đáp lại người dùng.
1.3.2. View:
Để chỉ ra layout nào sẽ được dùng thì trong controller ta thêm vào
protected $layout = 'layouts.master';
Laravel

sử

dụng

Blade

Templating,

xem

link

để xem cú pháp của nó.
Sinh viên thực hiện: Nguyễn Linh – 12CNTT

13



Khoá 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


Khoá luận tốt nghiệp

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

DB::table('users')->update(array('votes' => 1));
DB::table('posts')->delete();
});
1.4. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU:
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế
giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng
dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, đơn giải, linh hoạt, ổn định và
dễ sử dụng, có tính khả chuyển, đặc biệt là miễn phí hoặc tốn rất ít phí, hoạt
động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất
mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng
dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên
bạn có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều
hành

khác

nhau:

phiên


dòng Windows, Linux, Mac

bản
OS

Win32

cho

các

hệ

điều

hành

X, Unix, FreeBSD, NetBSD, Novell

NetWare, SGI Irix, Solaris, SunOS,...
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ
liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ
khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP
hay Perl.

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

15



Khoá luận tốt nghiệp

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

Hình 1.12: Giao diện phpMyAdmin
Việc kết hợp CSDL với ứng dụng web, dữ liệu xử lý do php sẽ tương tác
với CSDL như lấy dữ liệu, làm nội dung trang web từ trạng thái tĩnh sang
động. Sự linh hoạt này là cốt lõi của một ứng dụng web động (dynamic web
application).

Hình 1.13: Mô hình hoạt động một ứng dụng web động
Mô hình tương tác giữ client - server: php và mysql
PHP dùng để gửi yêu cầu cho server và php đóng vai trò làm thông dịch
và lấy kết quả có được trả lại cho Client ở dạng mã HTML cho người dùng

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

16


×