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

Xây dựng website thương mại điện tử cho shop mĩ phẩm xách tay bằ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 (11.62 MB, 51 trang )

LỜI CẢM ƠN
Để hoàn thành được tốt báo cáo này, em xin gửi lời cảm ơn chân thành nhất
đến thầy giáo TS. Vũ Vinh Quang thầy đã hướng dẫn dìu dắt và tạo điều kiện giúp
đỡ em trong thời gian thực hiện đề tài báo cáo đồ án. Thầy không chỉ truyền lại cho
chúng em những kiến thức chuyên nghành mà còn rèn luyện cho chúng em nghị
lực, khát khao vươn lên, phát huy khả năng tư duy sáng tạo trong mọi lĩnh vực. Bên
cạnh đó, em còn có cơ hội được tiếp xúc và làm việc trong một môi trường chuyên
nghiệp và thực tế.
Sau một thời gian tìm hiểu đề tài, em đã hoàn thành đúng tiến độ dự kiến. Để
đạt được kết quả này, em đã nỗ lực thực hiện và đồng thời cũng nhận được rất nhiều
sự giúp đỡ, quan tâm, ủng hộ của các thầy cô bạn bè và gia đình.
Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học Công
nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng dạy và
truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường.
Vì thời gian có hạn nên không thể tránh khỏi những thiếu sót, em rất mong
nhận được sự đóng góp ý kiến từ thầy cô và các bạn. Em xin chân thành cảm ơn!
Thái Nguyên, ngày

tháng

Sinh viên thực hiện

Phạm Trường Giang

1

năm 2017


LỜI CAM ĐOAN
Sinh viên: Phạm Trường Giang xin cam đoan:


- Đồ án tốt nghiệp là thành quả từ sự nghiên cứu hoàn toàn thực tế trên cơ sở
các số liệu thực tế và được thực hiện theo hướng dẫn của giáo viên hướng dẫn.
- Đồ án được thực hiện hoàn toàn mới, là công trình nghiên cứu khoa học của
bản thân, không sao chép theo bất cứ đồ án tương tự nào.
- Kết quả trình bày trong đồ án là trung thực, chưa từng được công bố trước đây.
- Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫn các nguồn tài
liệu trong báo cáo và danh mục tài liệu tham khảo.
- Mọi sao chép không hợp lệ, vi phạm quy chế của nhà trường, em xin hoàn
toàn chịu trách nhiệm.
Thái Nguyên, ngày

tháng

Sinh viên cam đoan

Phạm Trường Giang

2

năm 2017


MỤC LỤC
LỜI CẢM ƠN ......................................................................................................... 1
LỜI CAM ĐOAN .................................................................................................... 2
MỤC LỤC .............................................................................................................. 3
DANH MỤC HÌNH ................................................................................................ 5
LỜI NÓI ĐẦU ........................................................................................................ 6
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT ......................................................................... 7
1.2 Tìm hiểu UML ............................................................................................... 7

1.2.1 Giới thiệu tổng quan UML ...................................................................... 7
1.3 Ngôn ngữ PHP ............................................................................................... 8
1.3.1 Giới thiệu ................................................................................................ 8
1.3.2 Một số quy tắc cơ bản ............................................................................. 8
1.4 Giới thiệu về Laravel Framework ................................................................ 10
1.4.1 Giới thiệu chung ................................................................................... 10
1.4.2 Sơ lược các tính năng cơ bản của Laravel Framework........................... 10
1.4.3 Làm việc với dữ liệu trong laravel......................................................... 17
CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG .................. 19
2.1. Khảo sát thực trạng và tìm hiểu nhu cầu...................................................... 19
2.1.1. Thực trạng............................................................................................ 19
2.1.3. Yêu cầu bài toán. ................................................................................. 20
2.2 Phân tích và thiết kế hệ thống ...................................................................... 20
2.2.1 Yêu cầu hệ thống .................................................................................. 20
2.2.2 Phân tích yêu cầu hệ thống ................................................................... 21
2.3 Phân tích thiết kế hệ thống ........................................................................... 23
2.3.1 Biểu đồ Usecase của hệ thống .............................................................. 23
2.3.2 Biểu đồ trình tự ..................................................................................... 29
2.3.3 Biểu đồ lớp ........................................................................................... 41
CHƯƠNG 3: CÁI ĐẶT HỆ THỐNG .................................................................... 42
3.1. Trang chủ.................................................................................................... 42
3.2. Chi tiết sản phẩm ........................................................................................ 43

3


3.3. Đặt hàng – giỏ hàng ................................................................................... 44
3.4. Thanh toán .................................................................................................. 44
3.5 Đặt hàng thành công .................................................................................... 45
3.6. Quản trị....................................................................................................... 45

3.6.1 Quản lý – Thêm mới bài viết ................................................................. 46
3.6.2 Quản lý sản phẩm ................................................................................. 46
3.6.3 Quản lý danh mục sản phẩm ................................................................. 47
3.6.4. Quản lý đơn hàng ................................................................................. 47
3.6.5 Chi tiết đơn hàng................................................................................... 48
3.6.4 Quản lý người dùng .............................................................................. 48
KẾT LUẬN ........................................................................................................... 49
TÀI LIỆU THAM KHẢO ..................................................................................... 50

4


DANH MỤC HÌNH
Hình 2.1: Biểu đồ usecase tổng quát. ..................................................................... 24
Hình 2.2: Biểu đồ usecase chuyên mục. ................................................................. 25
Hình 2.3 : Biểu đồ usecase danh mục. ................................................................... 25
Hình 2.4: Biểu đồ usecase sản phẩm. ..................................................................... 26
Hình 2.5: Biểu đồ usecase đơn hàng. ..................................................................... 26
Hình 2.6: Biểu đồ usecase tin tức........................................................................... 27
Hình 2.7: Biểu đồ usecase quản lý thống kê........................................................... 27
Hình 2.8: Biểu đồ usecase người quản trị............................................................... 28
Hình 2.9: Biểu đồ trình tự đăng nhập. .................................................................... 29
Hình 2.10: Biểu đồ trình tự đăng xuất .................................................................... 29
Hình 2.11: Biểu đồ trình tự tìm kiếm ..................................................................... 30
Hình 2.12: Biểu đồ trình tự cho sản phẩm vào giỏ hàng ......................................... 30
Hình 2.13: Biểu đồ trình tự cập nhật giỏ hàng........................................................ 31
Hình 2.14: Biểu đồ trình tự đặt hàng ...................................................................... 32
Hình 2.15: Biểu đồ trình tự quản lý xem chuyên mục ............................................ 33
Hình 2.16: Biểu đồ trình tự quản lý thêm chuyên mục ........................................... 33
Hình 2.17: Biểu đồ trình tự quản lý sửa chuyên mục ............................................. 34

Hình 2.18: Biểu đồ trình tự quản lý xóa chuyên mục ............................................. 34
Hình 2.19: Biểu đồ trình tự quản lý xem danh mục ................................................ 35
Hình 2.20: Biểu đồ trình tự quản lý thêm danh mục............................................... 36
Hình 2.21: Biểu đồ trình tự quản lý sửa danh mục ................................................. 37
Hình 2.22: Biểu đồ trình tự quản lý xóa danh mục ................................................. 37
Hình 2.23: Biểu đồ trình tự quản lý xem sản phẩm ................................................ 38
Hình 2.24: Biểu đồ trình tự quản lý thêm sản phẩm ............................................... 38
Hình 2.25: Biểu đồ trình tự quản lý sửa sản phẩm ................................................. 39
Hình 2.26: Biểu đồ trình tự quản lý xóa sản phẩm ................................................. 39
Hình 2.27: Biểu đồ trình tự quản lý xem đơn hàng ................................................ 40
Hình 2.28: Biểu đồ trình tự quản lý sửa đơn hàng .................................................. 40
Hình 2.29: Biểu đồ trình tự quản lý xóa đơn hàng.................................................. 41
Hình 2.30: Biểu đồ lớp .......................................................................................... 41

5


LỜI NÓI ĐẦU
Tin học đã và đang được phát triển rộng rãi trong hầu hết các lĩnh vực của
nền kinh tế xã hội. Việc ứng dụng rộng rãi của tin học đã đem lại những thành tựu
vô cùng to lớn trong nhiều nghành, nhiều lĩnh vực khác nhau, đặc biệt trong lĩnh
vực quản lý và lưu trữ. Trước tình hình đó, là một sinh viên nghành công nghệ
thông tin đang được học tập trong ĐH CNTT& TT- Đại học Thái Nguyên em luôn
có nguyện vọng muốn đem những kiến thức mới về công nghệ thông tin áp dụng
vào đời sống nói chung và công tác quản lý nói riêng.
Với công nghệ Word Wide Web, hay còn gọi là Web sẽ giúp bạn đưa những
thông tin mong muốn của mình lên mạng Internet cho mọi người cùng xem một
cách dễ dàng với các công cụ và những ngôn ngữ lập trình khác nhau. Sự ra đời của
các ngôn ngữ lập trình cho phép chúng ta xây dựng các trang Web đáp ứng được
các yêu cầu của người sử dụng. PHP (Personal Home Page) là kịch bản trên phía

trình chủ (Server Script) cho phép chúng ta xây dựng trang Web trên cơ sở dữ liệu.
Với nhiều ưu điểm nổi bật mà PHP và MySQL được rất nhiều người sử dụng.
Với lí do đó, được sự hướng dẫn và giúp đỡ của thầy giáo Tiến sĩ Vũ Vinh
Quang, em lựa chọn đề tài “Xây dựng website thương mại điện tử cho shop mĩ
phẩm xách tay bằng Laravel”.
* Mục đích nghiên cứu
- Khảo sát yêu cầu thực tế tại cửa hàng mĩ phẩm xách tay để nắm bắt các
thông tin về sản phẩm mà cửa hàng đang kinh doanh, quy trình quản lý, đồng thời
thu nhập các biểu mẫu chứng từ thực tế tại công ty.
- Phân tích thiết kế hệ thống dựa trên các nội dung khảo sát.
- Tìm hiểu các ngôn ngữ lập trình cần thiết để thiết kế và xây dựng website

6


CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
Hệ thống website giới thiệu các món ăn của Việt Nam được phân tích hướng
đối tượng UML, sử dụng hệ quản trị cơ sở dữ liệu MySQL, ngôn ngữ lập trình PHP
kết hợp với JavaScript, HTML, CSS, các thư viện của jQuery, PHP Framework:
Laravel 5.2..
1.2 Tìm hiểu UML
1.2.1 Giới thiệu tổng quan UML
Ngôn ngữ mô hình hóa thống nhất (Unified Modeling Language, viết tắt
thành UML) là một ngôn ngữ mô hình gồm các ký hiệu đồ họa mà các phương pháp
hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng.
Cách xây dựng các mô hình trong UML phù hợp mô tả các hệ thống thông
tin cả về cấu trúc cũng như hoạt động. Cách tiếp cận theo mô hình của UML giúp
ích rất nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng như
những người sử dụng nó; tạo nên một cái nhìn bao quát và đầy đủ về hệ thống thông
tin dự định xây dựng. Cách nhìn bao quát này giúp nắm bắt trọn vẹn các yêu cầu

của người dùng; phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định và kiểm
tra sản phẩm ứng dụng công nghệ thông tin. Các mô hình hướng đối tượng được lập
cũng là cơ sở cho việc ứng dụng các chương trình tự động sinh mã trong các ngôn
ngữ lập trình hướng đối tượng, chẳng hạn như ngôn ngữ C++, Java,... Phương pháp
mô hình này rất hữu dụng trong lập trình hướng đối tượng. Các mô hình được sử
dụng bao gồm Mô hình đối tượng (mô hình tĩnh) và Mô hình động.
UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mô
hình (model elements). Tập hợp các phần tử mô hình tạo thành các Sơ đồ UML
(UML diagrams). Có các loại sơ đồ UML chủ yếu sau:
● Sơ đồ lớp (Class Diagram)
● Sơ đồ đối tượng (Object Diagram)
● Sơ đồ tình huống sử dụng (Use Cases Diagram)
● Sơ đồ trình tự (Sequence Diagram)
● Sơ đồ cộng tác (Collaboration Diagram hay là Composite Structure
Diagram)

7


● Sơ đồ trạng thái (State Machine Diagram)
● Sơ đồ thành phần (Component Diagram)
● Sơ đồ hoạt động (Activity Diagram)
● Sơ đồ triển khai (Deployment Diagram)
● Sơ đồ gói (Package Diagram)
● Sơ đồ liên lạc (Communication Diagram)
● Sơ đồ tương tác (Interaction Overview Diagram - UML 2.0)
● Sơ đồ phối hợp thời gian (Timing Diagram - UML 2.0)
1.3 Ngôn ngữ PHP
1.3.1 Giới thiệu
PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được

dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục
đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML.
Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C
và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn
ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến
nhất thế giới.
1.3.2 Một số quy tắc cơ bản
Bắt đầu viết mã PHP
● Các câu lệnh PHP phải được đặt trong file có đuôi mở rộng là .php
● Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã
PHP qua đó máy chủ biết để xử lý và dịch mã cho đúng.
Kiểu dữ liệu
● Kiểu dũ liệu nguyên thủy: Kiểu số nguyên(int), chuỗi ký tự(string),kiểu số
thực(float, double),…
● Kiểu dữ liệu có cấu trúc: Kiểu class, kiểu enum.
Khai báo
● Chú thích: Sử dụng dấu //, # để chú thích một dòng, dấu /**/ chú thích
trên nhiều dòng.
● Khai báo biến: $tên_biến = [giá trị];

8


● Khai báo hằng: define(‘ten_hang’, ‘gia_tri’);
Các câu lệnh lặp
● Lệnh lặp for:
for ($bien_dieu_khien; $bieu_thuc_dieu_kien;
$bieu_thuc_thay_doi_bien_dieu_khien){
// lệnh
};

● Lệnh lặp foreach:
foreach ($array as $key => $value){
// Các dòng lệnh
}
Trong đó $array là mảng cần lặp, $key là số chỉ mục (mảng có chỉ mục) hoặc
là key (trong mảng kết hợp), $value là giá trị của phần tử ở vị trí $key.
● Lệnh lặp While:
while ($condition) {
// dòng lệnh
}
Trong đó $condition là điều kiện để dừng vòng lặp. Nếu $condition có giá trị
false thì vòng lặp kết thúc, ngược lại vòng lặp sẽ tiếp tục lặp. Vòng lặp while sẽ lặp
vô hạn nếu biểu thức điều kiện bạn truyền vào luôn luôn đúng.
Khai báo class và hàm
● Tạo class
class <tên class> [extends <tên class>]{
// các câu lệnh;
}
● Khai báo hàm tự định nghĩa
function <tên hàm>([các tham số]){
// Các câu lệnh;
}
● Hàm khởi tạo: function __construct(){[ câu lệnh] }

9


Có thể khai báo tên hàm trùng tên class để khai báo hàm khởi tạo. Hàm khởi
tạo tự động chạy đầu tiên khi đối tượng được tạo.
● Hàm hủy: function __destruct(){[ câu lệnh] }

Hàm khởi tạo tự động load cuối cùng khi đối tượng được tạo.
1.4 Giới thiệu về Laravel Framework
1.4.1 Giới thiệu chung
Laravel được tạo ra bởi Taylor Otwell và phát hành chính thức vào 06/2011.
Laravel là 1 open source, là một framework dùng để xây dựng web application,
được thiết kế dựa trên mô hình MVC (Model, Controller, View), toàn bộ source
code được đặt trên github. Theo kết qủa khảo sát của các Developer vào tháng 12
năm 2013, thì Laravel Framework đứng top 1 một trong những framework phổ biến
nhất, tiếp sau là Phalcon, Symfony2, CodeIgniter và các framework khác. Tháng 8
năm 2014, Laravel Framework được xem như là một dự án PHP phổ biến nhất trên
Github.
1.4.2 Sơ lược các tính năng cơ bản của Laravel Framework
1.4.2.1 Route
Route trong laravel có nhiệm vụ định hướng request của laravel.
Hầu hết các route của laravel định nghĩa trong file app/Http/routes.php. Và
đây là danh sách các loại Route bao gồm các loại cơ bản và thường được sử dụng
sau:
● Route::get phương thức GET.
● Route::post phương thức POST.
● Route::match kết hợp hiều phương phức.
● Route::any nhận tất cả các phương thức.
● Route::filter tạo ra bộ lọc nhằm mục đích nào đó, ví dụ tạo bộ lọc kiểm tra
đã đăng nhập hay chưa.
● Route::group gom các route lại với nhau thành một nhóm.
● Route::controller gọi đến controller tương ứng.
● Route::resource sử dụng với resource controller.
Sử dụng route:

10



Route::<loại route>( $uri, $action );
Trong đó $action có thể là 1 mảng, hàm hoặc 1 chuỗi.
1.4.2.2 Controller
Sau khi route nhận được request thì sẽ chuyển hướng request đến cho
controller và giao cho controller này xử lý. Controller sẽ gọi tới Model để tương tác
với cơ sở dữ liệu (database) và đưa dữ liệu tới View và View sẽ nhận dữ liệu và
chuyển thành những đoạn mã HTML rồi gửi về cho Client.
Tất cả controller trong laravel được chứa trong thư mục app/Http/controllers
và việc tạo tên file, đặt tên controller cũng phải tuân theo nguyên tắc của nó như
sau:
● Trong laravel có một lớp xử lý Controller chính của nó, do đó các
Controller tạo mới phải kế thừa controller này.
● Tên controller phải trùng với tên file.
Có hai cách tạo controller:
● Tạo trực tiếp trong thư mục app/Http/controllers:
Class <Tên controller> extends Controller{
//Các action
}
● Tạo bằng câu lệnh artisan:
Trỏ đến thư mục gốc chứa project laravel, sau đó nhập câu lệnh:
php artisan make:controller tên_controller
Tạo các action trong controller
Khi làm việc với Route::controller thì cần chú ý việc đặt tên action phải tuân
theo quy tắc methodUri như sau:
● method là post, get, ... và viết thường
● Uri: Chữ cái đầu tiên của Uri sẽ bắt buộc viết in hoa, cứ 1 chữ in hoa sẽ
được tính là 1 đoạn uri được phân cách bởi dấu Ví dụ: action getDemoAction sẽ có method là get và Uri là demo-action

11



● Khi làm việc với Route::resource thì controller laravel hỗ trợ 8 action:
index, create, store, show, edit, update, destroy nhưng trong controller không nhất
thiết phải tạo đủ 8 action này.
Ngoại trừ những điều trên thì action bạn có thể đặt tên tùy ý.
1.4.2.3 View
View là một thành phần khá quan trọng trong mô hình MVC. Nhiệm vụ của
View là nhận dữ liệu từ Controller và sau đó dựa vào layout của giao diện nó sẽ xử
lý dữ liệu theo yêu cầu.
Trong laravel 5.2, mặc định tất cả các file view sẽ được lưu trong thư mục
app/resources/views với đuôi file là .php hoặc .blade.php nếu ta sử dụng bladetemplate (khuyên dùng), việc tạo thì 2 loại file này tương tự nhau, bạn chỉ việc tạo
file mới trong thư mục app/resources/views là được.
- Tạo view
Để tạo một view ta vào thư mục app/resources/views và tạo file như bình
thường nhưng phải có đuôi mở rộng là .php hoặc .blade.php. Ta cũng có thể tạo
view trong subfolder.
- Sử dụng view
Để gọi một view trong laravel ta dùng cú pháp sau:
view($view, $data = array(), $mergeData = array());
Trong đó:
● $view là tên view mà bạn đã tạo.
● $data là mảng dữ liệu bạn truyền cho view thao tác để hiển thị.
● $mergeData là mảng dữ liệu sẽ được merge với $data bằng hàm
array_merge.
● $view là bắt buộc, còn 2 tham số còn lại là tùy chọn.
Nếu bạn muốn gọi sub-view thì sử dụng dấu chấm . để biểu thị cho 1 cấp thư
mục. Ví dụ bạn gọi đến sub-view login ở thư mục auth như ví dụ ở trên thì bạn viết
như sau:
view(‘auth.login’);


12


Theo mô hình MVC thì View sẽ được gọi trong Controller nên trong laravel
tương tự như vậy, tuy nhiên bạn có thể gọi nó trong route cũng được.
- Truyền biến qua view
Có 3 cách để truyền biến qua view:
● Truyền biến ngay khi gọi view
view(‘$view’, [‘$key’ => ‘$value’]);
Trong đó:
● $view (string): là tên view sẽ được gọi.
● $key(string): là tên biến.
● $value(string): là giá trị của biến;
● Sử dụng with
view(‘<view>’)->with($key, $value);
Trong đó:
● $view (string): là tên view sẽ được gọi
● $key (string hoặc array): nếu là chuỗi thì $key sẽ đóng vai trò là biến dùng
để sử dụng trong view nếu là mảng thì mỗi khóa của mảng sẽ là 1 biến trong view
● $value (string): nếu $key là chuỗi thì $value chính là giá trị của $key trong
view, ngược lại thì $value không có giá trị trong view
● Sử dụng masic method
view::make($view)->withName($value);
Trong đó:
- $view (string): là tên view sẽ được gọi.
withName:
- with sẽ là bắt buộc có và viết hường.
- Name ở đây là tên biến sẽ gọi trong view và chữ cái đầu tiên viết in hoa và
các chữ cái còn lại viết thường.

- $value: giá trị của biến của $name.
Ngoài ra ta có thể sử dụng hàm compact để truyền biến trong view.
Cú pháp: view($view, compact(‘$var’));

13


Trong đó:
- $view (string): là tên view sẽ được gọi.
- $var(string): là biến cần truyền.
1.4.2.4 Sử dụng blade engine trong laravel
Template engine có tác dụng giúp sạch đi những đoạn code PHP nằm trong
View nên tách biệt hoàn toàn giữa người cắt CSS và người code PHP. Hiện nay có
khá nhiều template engine như Smarty, tuy nhiên việc sử dụng nó đang là một câu
hỏi lớn vì tốc độ xử lý của ứng dụng sẽ trở nên chậm hơn. Lý do mỗi khi render qua
view thì PHP sẽ phải duyệt toàn bộ nội dung của view và tìm những biểu thức của
engine và gán dữ liệu vào. Template engine Blade là một engine khá đơn giản
nhưng đầy mạnh mẽ. Template engine này được tích hợp sẵn bên trong laravel và
tất cả blade template engine đều có phần mở rộng là .blade.php.
- Tạo Blade template engine
Tất cả các Blade template engine đều có phần mở rộng là .blade.php và nằm
trong thư mục app/resources/views.
Các đoạn mã htlm trong file viết như file .html bình thường. Ví dụ:
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<title>Blade template engine</title>
</head>
<body>

Sử dụng Blade template engine trong Laravel


</body>
</html>
- Các cú pháp sử dụng trong Blade template engine
● Blade sử dụng cặp ngoặc {{}} hoặc {!! !!} để echo giá trị
Ví dụ: Hôm nay là ngày: {{date("d-m-Y")}}
● Sử dụng or để xuất giá trị mặc định.

14


Ví dụ: Hello, {{ $name or 'Buzz' }}.
Nếu biến $name không tồn tại thì sẽ echo ra Buzz
● Sử dụng 3 cặp ngoặc {{{}}} để xuất giá trị dưới dạng HTML entities .
Ví dụ: {{ '<title>Blade</title>' }}
Kết quả: <title>Blate</title>
● Sử dụng @ phía trước {} để BTE bỏ qua không xử lý.
Ví dụ: @{{ ‘Blate ’ }}
Kết quả: {{ 'blate' }}
● Sử dụng các vòng lặp, câu lệnh điều kiện.
Để sử dụng vòng lặp hoặc câu điều kiện if thì ta chỉ việc thêm @ ngay trước
câu lệnh (theo cú pháp PHP) và kết thúc bằng @end +tên hàm.
Ví dụ:
@if (count($records) === 1)
Có 1 sản phẩm
@elseif (count($records) > 1)
Có nhiều sản phẩm
@else
Không có sản phẩm
@endif

//
@for ($i = 0; $i < 10; $i++)
Giá trị của i: {{ $i }}

@endfor
- Mở rộng, ghi đè và sub-view với blade
● Chèn sub-view
Để chèn sub-view ta dùng cú pháp:
@include($string_view_name, $array_data)
Lưu ý: Giả sử file a.blade.php include file b.blade.php thì những biến sử
dụng được ở file a.blade.php thì đều có thể sử dụng trong file b.blade.php.

15


● Mở rộng và ghi đè
Các từ khóa chính
- @extends: Kế thừa nội dung một file khác.
Cú pháp: @extends(‘<tên_file_kế_thừa>’);
- @yield: Có nhiệm vụ xuất dữ liệu ra, đánh dấu vị trí section được thêm vào
trong layout.
Cú pháp: @yield(‘tên_section’)
- @section: Phân nhỏ layout ra thành từng đoạn nhỏ để các trang con ghi nội
dung vào các vị trí đánh dấu này.
Cú pháp: @section((‘tên_section’)
- @endsection: Đánh dấu kết thúc một section.
1.4.2.5 Model và Migration
Trong mô hình MVC thì Model đóng vai trò giao tiếp với database. Trong
laravel cũng vậy, model trong laravel có vai trò kết nối cơ sở dữ liệu và thực hiện
những công việc liên quan đến dữ liệu.
Laravel 5 đi kèm với model User mặc định app/User.php và class này sẽ đại

diện cho User trong toàn bộ ứng dụng của chúng ta.
Migration trong laravel giúp quản lý sự thay đổi cấu trúc dữ liệu. Sử dụng
migration giúp lập trình viên giảm nhẹ việc triển khai ứng dụng.
- Tạo model:
● Tạo file trong thư mục app với quy tắc tên file phải trùng tên model, hoặc
tạo với câu lệnh:
Php artisan make:model model_name
Trong đó model_name là tên model
● Với mỗi một model thì đều phả kế thừa Model của laravel để nó có thể
chấp nhận và xử lý model ta tự tạo.
- Tạo Migration
Lệnh tạo:
Php artisan make:migration minration_name
Trong đó: minration_name là tên của migration ta định tạo

16


Sau khi tạo thì migration sẽ nằm trong thư mục app/database/migrations.
1.4.3 Làm việc với dữ liệu trong laravel
1.4.3.1 Eloquent
Để sử dụng được Eloquent thì cần tạo model và định nghĩa model đó.
Ví dụ: Tạo model User.php trong thư mục app/models/User.php
class User extends Eloquent {
protected $table = 'my_users';
protected $fillable = ['name', 'email'];
protected $hidden = ['password', 'remember_token'];
}
● Khi model được định nghĩa là chúng ta có thể thao tác trên nó,và lớp
model đều phải kế thừa từ lớp Eloquent.

● Thuộc tính $table sẽ khai báo bảng dữ liệu mà ta sẽ thao tác.
● Thuộc tính $fillable khai báo những trường dữ liệu nào có thể hiển thị.
● Thuộc tính $fillable khai báo các trường ẩn.
- Thao tác với dữ liệu
Cú pháp:
$Model::bieuthuc->laydulieu();
Trong đó:
- $Model: là model đã được định nghĩa.
- Bieuthuc: là các biểu thức mà trong câu truy vấn sẽ thực.
- laydulieu(): là phương thức để thực thi câu truy vấn bao gồm các biểu thức
trước đó.
Các biểu thức truy vấn dữ liệu:
● get(): kiết xuất dữ liệu.
● find($id): tìm và chọn bộ dữ liệu có id là $id.
● where($where): Truy vấn dữ liệu với điều kiện $where.
● orderBy($name, $type): Sắp xếp dữ liệu trả về theo trường $name và kiểu
$type.

17


● paginate($number): Phân trang tự động với số bộ trên một trang là
$number.
● all(): lấy tất cả dữ liệu được chọn trong bảng;
● take($n1)->skip($n2): Lấy $n2 bộ dữ liệu bắt đầu từ bộ thứ $n1.
Ngoài ra còn một sơ biểu thức khách như: orWhere, whereIn, groupBy, ….

18



CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1. Khảo sát thực trạng và tìm hiểu nhu cầu
2.1.1. Thực trạng
Shop mĩ phẩm xách tay là một cửa hàng chuyên kinh doanh về các loại mĩ
phẩm trong nhiều năm nay và đã có một lượng khách hàng nhất định.
Shop mĩ phẩm xách tay chuyên cung cấp các loại mĩ phẩm nhập ngoại cho
khách hàng trong tỉnh ,với mong muốn mở rộng thị trường kinh doanh rằng phục vụ
khách hàng ngoài tỉnh và các khu vực khác. Shop mĩ phẩm xách tay cần có phải
pháp và phương hướng thực hiện.
Muốn thực hiện được thì cần có phương tiện quảng bá cũng như bán hàng
cho khách hàng có thể dễ dàng tiếp cận và sử dụng.
Hiện tại việc mua bán của cửa hàng vẫn thực hiện trên giấy tờ, việc kiết xuất
thông tin, cập nhật hàng hóa được ghi chép lưu trữ trên sổ sách, không có những
trang web quảng cáo cho công ty nên việc bán hàng trở lên kém hiệu quả, tốn công
sức cho tổng hợp thống kê và báo cáo tổng hợp, ngoài ra còn có thể dẫn đến thông
tin thiếu sót, thừa hoặc bị sai lệch.
Nguồn cung cấp mĩ phẩm là các đại lý lớn trong thành phố.
Việc tra cứu tìm kiếm thông tin các loại mĩ phẩm mất nhiều thời gian, công
sức, khách hàng chỉ có thể xem qua các tờ quảng cáo của cửa hàng nhưng lại không
thực sự đầy đủ.
Khó cập nhật thường xuyên các thông tin thay đổi, như mỗi khi cửa hàng có
các loại mĩ phẩm mới.
- Khác hàng đến với cửa hàng để lựa chọn mặt hàng và mua.
- Khác hàng xem thông tin chi tiết về mặt hàng, lựa chọn loại mĩ phẩm ưng ý
để mua.
 Nếu khách hàng đã biết rõ thông tin về mặt hàng định mua thì sẽ đưa ra
quyết định mua hay không.
 Nếu như khách hàng chưa biết đầy đủ thông tin về loại mĩ phẩm hoặc muốn
biết thêm thông tin về các loại mĩ phẩm được bày bán thì sẽ có nhân viên tư vấn
của cửa hàng trợ giúp để khách hàng có lựa chọn phù hợp với mục đích sử dụng.


19


 Chưa biết rõ các dịch vụ bảo hành của công ty.
- Thanh toán
Sau khi khách hàng đã tìm hiểu đầy đủ thông tin sách và quyết định mua
sách, khách hàng sẽ đến bàn thanh toán để thực viện việc mua hàng với nhân viên
của cửa hàng:
 Khách hàng cung cấp chi tiết thông tin cá nhân cho quá trình thanh toán:
tên, tuổi , địa chỉ, số điện thoại….
 Nhân viên dựa vào thông tin khách hàng cung cấp sẽ ghi hóa đơn thanh
toán
 Khách hàng xác nhận vào hóa đơn rồi trả tiền.
 Sau khi khách hàng đã mua hàng, hàng sẽ được chuyển tới đúng địa chỉ
- Nhân viên bán hàng tổng hợp báo cáo việc bán hàng theo định kỳ tháng,
quý, năm. Tổng hợp những sách bán chạy, sách tồn kho….
- Cửa hàng đầu tư kinh phí vào quảng cáo các loại mĩ phẩm, để tăng lượng
khách hành, tăng doanh số bán hàng.
Phương châm: Website là nơi giới thiệu,trưng bày hình ảnh thông tin liên
quan đến sản phẩm qua đó người sử dụng tham khảo là đặt hàng,mua sản phẩm
thông qua website.
Đối tượng khách hàng : nữ học sinh,sinh viên,người đi làm….
2.1.3. Yêu cầu bài toán.
Cửa hàng yêu cầu tạo một website giúp người sử dụng tra cứu, theo dõi
thông tin sản phẩm, các loại mĩ phẩm có mặt trên thì trường .Website là công cụ để
nguwofi mua giao tiếp với cửa hàng.Website phải hoạt động tốt,đầy đủ chức năng
,là kênh thông tin đáng tin cậy giữa người mua và cửa hàng.
2.2 Phân tích và thiết kế hệ thống
2.2.1 Yêu cầu hệ thống

 Xác định yêu cầu hệ thống
 Yêu cầu chức năng:
- Đảm bảo tính bảo mật thông tin

20


- Trang hiển thị bao gồm: Trang chủ hiển thị các sản phẩm mới nhất, tin tức
mới nhất,…
- Trang quản trị bao gồm: quản lý các trang menu, quản lý sản phẩm, quản
lý tin tức, đăng tin tức, đăng sản phẩm, quản lý hình ảnh,…
- Chức năng danh sách tin tức chính của website, bao gồm các tin tức liên
quan đến website.
 Yêu cầu phi chức năng:
- Giao diện thân thiện, dễ sử dụng
- Đảm bảo tính chính xác trên mọi trình duyệt khác nhau
- Đáp ứng độ tin cậy, cũng hiệu quả trên thời gian và không gian
- Chuyển giao dễ dàng và dễ triển khai
- Nội dung hiển thị một cách khoa học và chi tiết theo từng chuyên mục được
bố trí một cách rành mạch rõ ràng, nhằm thúc đẩy tốt nhất việc giao thương trên
website, tương tác hệ thống cao.
2.2.2 Phân tích yêu cầu hệ thống
Sau khi khảo sát và xác định được các yêu cầu của hệ thống, có thể phân tích
để đưa ra các quy trình nghiệp vụ chung của hệ thống bao gồm các phần:
 Thao tác với thông tin khách hàng trong hệ thống.
Người quản trị Admin là người có quyền thao tác với toàn bộ hệ thống. Để
đảm bảo tính bảo mật, yêu cầu có hệ thống phân quyền cụ thể và mật khẩu cho
người dùng phải được mã hóa. Các mục yêu cầu phải đạt được với thông tin người
quản trị viên là:
 Thêm mới, sửa, xóa thông tin sản phẩm, tin tức.

 Phân cấp quản lý làm 2 cấp: Admin và khách hàng truy cập. Trong đó
Admin là người có toàn quyền thao tác với hệ thống về vệc phân quyền và cập nhật
người dùng, có toàn bộ thao tác quản lý tin tức trên website đối với việc đăng tin,
duyệt tin,.... Còn đối với khách hàng thì có quyền xem sản phẩm, xem tin tức…
 Thao tác với chuyên mục.
Việc thiết lập chuyên mục là yêu cầu bắt buộc. Các yêu cầu gồm có:
 Thêm mới chuyên mục:

21


- Thời gian thực hiện: khi hệ thống có nhu cầu mở thêm các chuyên mục mới
đáp ứng nhu cầu trao đổi đối với khách hàng.
- Tác nhân thực hiện: quản trị viên (Admin).
- Các bước thực hiện.
1. Quản trị viên mở phần quản trị website rồi nhập những thông tin cần thiết
để thêm mới vào form.
2. Hệ thống kiểm tra thông tin rồi lưu lại vào trong cơ sở dữ liệu.
 Sửa thông tin chuyên mục:
- Thời gian thực hiện: khi quản trị viên muốn cập nhật thông tin của chuyên
mục đó.
- Tác nhân thực hiện: quản trị viên.
- Các bước thực hiện:
1. Quản trị viên chọn chuyên mục cần sửa trong trang quản lý chuyên mục.
2. Quản trị viên sửa thông tin trong các điều khiển hiển thị trong chuyên mục
vừa chọn.
3. Thông tin chuyên mục được lưu lại vào trong cơ sở dữ liệu thay thế thông
tin chuyên mục cũ.
 Xóa thông tin chuyên mục:
- Thời gian thực hiện: Khi chuyên mục đã không cần thiết nữa.

- Tác nhân thực hiện: quản trị viên.
- Các bước thực hiện:
1. Quản trị viên chọn chuyên mục cần xóa trong bảng thông tin.
2. Quản trị viên nhấn nút xóa trên trang quản lý chuyên mục.
3. Thông tin được xóa khỏi csdl.
 Thao tác với tin tức.
Việc thiết lập tin tức là yêu cầu bắt buộc. Các yêu cầu gồm có: thêm mới tin
tức, hình ảnh,...
 Thêm mới tin tức:
- Thời gian thực hiện: Cập nhật thường xuyên, tùy vào người quản trị hệ
thống.

22


- Tác nhân thực hiện: quản trị viên (Admin).
- Các bước thực hiện.
1. Quản trị viên mở phần quản lý tin tức rồi nhập những thông tin cần thiết
để thêm mới.
2. Hệ thống kiểm tra thông tin rồi lưu lại vào trong cơ sở dữ liệu.
 Sửa thông tin tin tức:
- Thời gian thực hiện: khi quản trị viên muốn cập nhật thông tin của tin tức đó.
- Tác nhân thực hiện: quản trị viên.
- Các bước thực hiện:
1. Quản trị viên chọn tin tức cần sửa trong trang quản lý tin tức
2. Quản trị viên sửa thông tin trong các điều khiển hiển thị trong tin tức vừa chọn.
3. Thông tin tin tức được lưu lại vào trong cơ sở dữ liệu thay thế thông tin tin
tức cũ.
 Xóa thông tin tin tức:
- Thời gian thực hiện: Khi tin tức đã không phù hợp hoặc không cần thiết nữa.

- Tác nhân thực hiện: quản trị viên.
- Các bước thực hiện:
1. Quản trị viên chọn tin tức cần xóa trong bảng thông tin.
2. Quản trị viên nhấn nút xóa trên trang quản lý tin tức.
3. Thông tin được xóa khỏi csdl.
2.3 Phân tích thiết kế hệ thống
2.3.1 Biểu đồ Usecase của hệ thống
Biểu đồ Usecase tổng quát
Biểu đồ cho cái nhìn tổng quát về hệ thống bao gồm đầy đủ các chức năng
mà hệ thống cung cấp. Quản trị viên sẽ quản lý các chức năng cung cấp đến cho
khách hàng các dịch vụ của mình.

23


Hình 2.1: Biểu đồ usecase tổng quát.
Danh sách các Usecase
STT
1

Tên Use-case

Ý nghĩa/Ghi chú

Quản lý hệ thống

Dùng để quản lý việc admin đăng nhập hay đăng
xuất vào hệ thống.

2


Quản lý chuyên mục

Dùng để quản lý các chuyên mục sản phẩm

3

Quản lý danh mục

Dùng để quản lý danh mục sản phẩm

4

Quản lý hãng

Dùng để quản lý hãng sản phẩm

5

Quản lý sản phẩm

Dùng để quản lý sản phẩm

6

Quản lý đơn hàng

Dùng để quản lý đơn hàng khách hàng đã đặt

7


Quản lý tin tức

Dùng để quản lý các tin tức của công ty

8

Quản lý người quản trị

Dùng để quản lý người quản trị

Bảng 2.1: Danh sách Usecase

24


Biểu đồ Usecase chức năng quản lý chuyên mục

Hình 2.2: Biểu đồ usecase chuyên mục.
Biểu đồ Usecase chức năng quản lý danh mục

Hình 2.3 : Biểu đồ usecase danh mục.

25


×