
TRƯỜNG CAO ĐẲNG CƠ ĐIỆN HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
GIÁO TRÌNH
XÂY DỰNG WEBSITE SỬ DỤNG FRAMEWORK
(Lưu hành nội bộ)
Hà Nội năm 2024

1
MỤC LỤC
Bài 1: Giới thiệu về Laravel .................................................................................. 4
Ưu điểm của Laravel ....................................................................................... 4
Các tính năng của Laravel .............................................................................. 5
Bài 2: Cài đặt Laravel ........................................................................................... 7
Bài 3: Cấu trúc ứng dụng Laravel ....................................................................... 10
Bài 4: Cấu hình Laravel ...................................................................................... 15
Cấu hình môi trường ..................................................................................... 15
Truy xuất các biến môi trường ...................................................................... 16
Chế độ bảo trì ................................................................................................ 17
Bài 5: Định tuyến (Routing) ............................................................................... 20
Định tuyến cơ bản ......................................................................................... 20
Định tuyến các tham số ................................................................................. 23
Đặt tên các định tuyến................................................................................... 24
Bài 6: Middleware ............................................................................................... 25
Đăng ký Middleware..................................................................................... 26
Các Tham số middleware ............................................................................. 27
Terminable Middleware ................................................................................ 30
Bài 7: Request trong Laravel .............................................................................. 34
Lấy Request URI........................................................................................... 34
Lấy dữ liệu đầu vào (input) ........................................................................... 35
Bài 8: Response trong laravel ............................................................................. 39
Response cơ bản ........................................................................................... 39
Đính kèm các header .................................................................................... 39
Đính kèm Cookies ........................................................................................ 40
Phản hồi JSON ............................................................................................. 41
Bài 9: Controllers ................................................................................................ 42
Tạo một controller ........................................................................................ 42
Controller Middleware ................................................................................. 43
Restful Resource Controllers ....................................................................... 48
Bài 10: Models .................................................................................................... 51
Model là gì? .................................................................................................. 51
Tạo Model .................................................................................................... 51

2
Bài 11: Migrations .............................................................................................. 53
Các lệnh Artisan Migration .......................................................................... 53
Tạo một Migration cơ sở dữ liệu mới .......................................................... 54
Cấu trúc của Migration ................................................................................ 54
Bài 12: Views ...................................................................................................... 58
Truyền dữ liệu cho views ............................................................................. 59
Chia sẻ dữ liệu với tất cả Views ................................................................... 60
Bài 13: Blade Template....................................................................................... 62
Cấu trúc Blade Layout ................................................................................. 63
Các bước để tạo Blade Template Layout & Hiển thị dữ liệu trong Blade
views: ........................................................................................................... 64
Các lệnh Blade Template ............................................................................. 66
Bài 14: Cookie .................................................................................................... 72
Tạo cookie .................................................................................................... 72
Truy xuất Cookie .......................................................................................... 72
Bài 15: Sessions .................................................................................................. 75
Bài 16: Điều hướng (redirection) ........................................................................ 78
Điều hướng tới Named Routes ..................................................................... 78
Điều hướng tới các action của controller ..................................................... 79
Bài 17: Làm việc với Cơ sở dữ liệu .................................................................... 81
Kết nối với cơ sở dữ liệu .............................................................................. 81
Làm việc với CSDL – Insert ........................................................................ 81
Làm việc với CSDL – Select ....................................................................... 84
Làm việc với CSDL – Update ...................................................................... 86
Làm việc với CSDL – Delete ....................................................................... 90
Bài 18: Form ....................................................................................................... 94
Bài 19: Xác thực dữ liệu (Validation) ................................................................. 98
Các quy tắc validation có sẵn trong Laravel ................................................ 98
Bài 20: Đa ngôn ngữ (Localization) ................................................................. 103
Bài 21: Upload file ............................................................................................ 106
Bài 22: Gửi mail ................................................................................................ 109
Bài 23: AJAX .................................................................................................... 113
Bài 24: Xử lý lỗi ................................................................................................ 115

3
Những điểm quan trọng ............................................................................. 115
Nhật ký lỗi (Error Log) .............................................................................. 116
Mức độ nghiêm trọng ................................................................................. 117
Bài 25: Bảo vệ CSRF ........................................................................................ 118
Thực hiện .................................................................................................... 118
Form không có CSRF token ....................................................................... 118
Form với CSRF token ................................................................................ 119
Bài 26: Xác thực (Authentication) .................................................................... 121
Lệnh ............................................................................................................ 121
Controller ................................................................................................... 121
Xác thực người dùng thủ công ................................................................... 123
Bài 27: Ủy quyền (Authorization) .................................................................... 124
Sự khác biệt giữa Xác thực và Ủy quyền ................................................... 124
Cơ chế ủy quyền trong Laravel .................................................................. 124

4
Bài 1: Giới thiệu về Laravel
Laravel là một framework PHP mã nguồn mở, mạnh mẽ và dễ hiểu. Nó
tuân theo một mẫu thiết kế model-view-controller. Laravel sử dụng lại các thành
phần hiện có của các khung khác nhau để giúp tạo ra một ứng dụng web. Do đó,
ứng dụng web được thiết kế có cấu trúc và thực dụng hơn.
Laravel cung cấp một tập hợp các chức năng phong phú kết hợp các tính
năng cơ bản của các framework PHP như CodeIgniter, Yii và các ngôn ngữ lập
trình khác như Ruby on Rails. Laravel có một bộ tính năng rất phong phú sẽ giúp
tăng tốc độ phát triển web.
Nếu bạn đã quen thuộc với Core PHP và Advanced PHP, Laravel sẽ giúp
công việc của bạn dễ dàng hơn. Nó tiết kiệm rất nhiều thời gian nếu bạn đang có
kế hoạch phát triển một trang web từ đầu. Hơn nữa, một trang web được xây dựng
trong Laravel là an toàn và ngăn chặn một số cuộc tấn công web.
➢ Ưu điểm của Laravel
Khi bạn đang thiết kế một ứng dụng web dựa trên Laravel, nó cung cấp
cho bạn những lợi thế sau:
• Ứng dụng web trở nên có khả năng mở rộng hơn, nhờ vào framework
Laravel.
• Tiết kiệm đáng kể thời gian trong việc thiết kế ứng dụng web, vì Laravel
sử dụng lại các thành phần từ framework khác trong việc phát triển ứng
dụng web.
• Nó bao gồm các không gian tên và giao diện, do đó hữu ích trong việc
tổ chức và quản lý tài nguyên.
➢ Composer
Composer là một công cụ bao gồm tất cả các dependencies và thư viện.
Nó cho phép người dùng tạo một dự án liên quan đến framework đã đề cập (ví
dụ: những dự án được sử dụng trong cài đặt Laravel). Thư viện của bên thứ ba có
thể được cài đặt dễ dàng với sự trợ giúp của composer.
Tất cả các dependencies được ghi chú trong tệp composer.json được đặt
trong thư mục nguồn.
➢ Artisan
Giao diện dòng lệnh được sử dụng trong Laravel được gọi là Artisan. Nó
bao gồm một tập hợp các lệnh hỗ trợ xây dựng một ứng dụng web. Các lệnh này
được kết hợp từ framework Symphony..

