LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ
trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác. Trong suốt
thời gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rất
nhiều sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè.
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Khoa Công
Nghệ Thông Tin đã dành hết tâm huyết của mình để truyền đạt vốn kiến thức quý
báu cho chúng em trong suốt thời gian học tập tại trường. Vốn kiến thức đó không
chỉ là nền tảng cho quá trình nghiên cứu đồ án mà còn là hành trang quý báu để em
tự tin vững bước hơn trong trường đời.
Em xin bày tỏ lòng biết ơn sâu sắc đến thầy Phạm Việt Bình người đã hướng
dẫn và tận tình chỉ bảo cho em trong suốt quá trình hoàn thiện đồ án.
Em cũng gửi lời cảm ơn tới gia đình và bạn bè đã luôn quan tâm, động viên,
giúp đỡ và tạo điều kiện cho em để em có điều kiện tốt nhất để hoàn thành đề tài.
Em xin chân thành cảm ơn.
Thái Nguyên, ngày 4 tháng 5 năm 2017
Sinh viên thực hiện
Trần Đăng Khoa
i
LỜI CAM ĐOAN
Em xin cam đoan toàn bộ nội dung của báo cáo này là do em tự tìm hiểu
nghiên cứu dưới sự định hướng của thầy giáo hướng dẫn PSG.TS. Phạm Việt Bình.
Nội dung báo cáo này không sao chép và vi phạm bản quyền từ bất kỳ công trình
nghiên cứu nào.
Nếu những lời cam đoan trên không đúng, em xin chịu hoàn toàn trách
nhiệm trước pháp luật.
Thái Nguyên, ngày 4 tháng 5 năm 2017
Sinh viên thực hiện
Trần Đăng Khoa
ii
MỤC LỤC
LỜI CẢM ƠN ..........................................................................................................i
LỜI CAM ĐOAN ....................................................................................................ii
MỤC LỤC ............................................................................................................ iii
DANH MỤC HÌNH ................................................................................................ v
LỜI MỞ ĐẦU ......................................................................................................... 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ........................................................................ 2
1.1. Thương mại điện tử .......................................................................................... 2
1.2. Tìm hiểu về Laravel .......................................................................................... 4
1.2.1. Giới thiệu về Laravel ................................................................................. 4
1.2.2. Sự phát triển của Laravel. .......................................................................... 4
1.2.3. Các điểm nhấn đặc sắc của Laravel ............................................................ 6
1.2.4. Cài đặt Laravel thông qua Composer. ........................................................ 8
1.2.5. Cấu trúc Laravel ........................................................................................ 9
1.2.6. Các thành phần cơ bản trong Laravel ....................................................... 11
1.3. Tìm hiểu về Bootstrap..................................................................................... 20
1.3.1. Giới thiệu về Bootstrap ............................................................................ 20
1.3.2. Một số ưu điểm chính của Boostrap. ........................................................ 21
1.3.3. Cách sử dụng Twitter Bootstrap. .............................................................. 22
1.4. PHP & MySQL .............................................................................................. 24
1.4.1. Hệ quản trị CSDL MySQL....................................................................... 24
1.4.2. PHP ......................................................................................................... 24
CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH THIẾT KẾ HỆ THỐNG ...................... 26
2.1. Khảo sát hiện trạng ......................................................................................... 26
2.2. Phân tích yêu cầu bài toán .............................................................................. 26
2.3. Phân tích thiết kế hệ thống .............................................................................. 27
2.4. Cơ sở dữ liệu .................................................................................................. 44
CHƯƠNG 3: THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH.................................... 45
3.1. Giao diện chương trình ................................................................................... 45
3.1.1. Giao diện phần quản lý ............................................................................ 45
iii
3.1.2. Giao diện khách hàng ............................................................................... 49
KẾT LUẬN ........................................................................................................... 56
TÀI LIỆU THAM KHẢO ..................................................................................... 57
iv
DANH MỤC HÌNH ẢNH
Hình 1.1: Tỉ lệ người sử dụng Laravel năm 2013 ..................................................... 5
Hình 1.2: Tỉ lệ người sử dụng Laravel năm 2015 ..................................................... 6
Hình 1.3: MVC trong Laravel .................................................................................. 7
Hình 1.4: Cài đặt composer ..................................................................................... 8
Hình 1.5: Cấu trúc thư mục Laravel ......................................................................... 9
Hình 1.6: Bootstrap trên Github ............................................................................. 21
Hình 1.7: Cấu trúc thư mục css framework boostrap.............................................. 22
Hình 1.8: Minh họa form trong boostrap................................................................ 23
Hình 1.9: Kết quả viết form ................................................................................... 23
Hình 1.10: Kết quả bootstrap responsive ............................................................... 23
Hình 2.1: Biểu đồ usecase quản lý sản phẩm, danh mục sản phẩm......................... 29
Hình 2.2: Biểu đồ usecase quản lý đơn hàng, khách hàng ...................................... 30
Hình 2.3: Biểu đồ trình tự đăng nhập ..................................................................... 31
Hình 2.4: Biểu đồ trình tự đăng xuất ...................................................................... 32
Hình 2.5: Biểu đồ trình tự xem sản phẩm............................................................... 32
Hình 2.6: Biểu đồ trình tự thêm ............................................................................. 33
Hình 2.7: Biểu đồ trình tự sửa sản phẩm ................................................................ 34
Hình 2.8: Biểu đồ trình tự xóa sản phẩm............................................................... 35
Hình 2.9: Biểu đồ trình tự thêm bài viết ................................................................. 36
Hình 2.10: Biểu đồ trình tự xem bài viết ................................................................ 37
Hình 2.11: Biểu đồ trình tự sửa bài viết ................................................................. 38
Hình 2.12: Biểu đồ trình tự liên hệ......................................................................... 39
Hình 2.13: Biểu đồ trình tự mua sản phẩm............................................................. 40
Hình 2.14: Biểu đồ lớp sản phẩm........................................................................... 41
Hình 2.15: Biểu đồ lớp danh mục sản phẩm .......................................................... 42
Hình 2.16: Biểu đồ lớp liên hệ ............................................................................... 43
v
LỜI MỞ ĐẦU
Với sự phát triển nhảy vọt của công nghệ thông tin hiện nay, Internet ngày càng
giữ vai trò quan trọng trong các lĩnh vực khoa học kĩ thuật và đời sống. Dĩ nhiên các
bạn đã được nghe nói nhiều về Internet, nói một cách đơn giản, Internet là một tập hợp
máy tính nối kết với nhau, là một mạng máy tính toàn cầu mà bất kì ai cũng có thể kết
nối bằng máy PC của họ. Với mạng Internet, tin học thật sự tạo nên một cuộc cách
mạng trao đổi thông tin trong mọi lĩnh vực văn hóa, xã hội, chính trị, kinh tế...
Trong thời đại ngày nay, thời đại mà “người người làm Web, nhà nhà làm
Web” thì việc có một Website để quảng bá công ty hay một Website cá nhân không
còn là điều gì khó khan nữa. Thông qua Website khách hàng có thể lựa chọn sản
phẩm một cách nhanh chóng và hiệu quả.
Với công nghệ Word Wide Web, hay còn gọi là Web sẽ giúp đưa những
thông tin mong muốn 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 Phạm Việt Bình, em đã
chọn đề tài: “Xây dựng website bán dụng cụ võ thuật cho công ty Việt Bắc, Thái
Nguyên”. Trong quá trình thực hiện đề tài thực tập này em đã nhận được sự giúp đỡ
chỉ bảo tận tình của các thầy, cô giáo, Em xin chân thành cảm ơn thầy Phạm Việt
Bình đã hướng dẫn em tận tình trong quá trình xây dựng đề tài.
Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức nhưng khó tránh
khỏi thiếu sót. Em rất mong nhận được sự thông cảm, những lời góp ý và chỉ bảo
tận tình của quý Thầy Cô.
Thái Nguyên, ngày 04 tháng 05 năm 2017
Người viết báo cáo
Trần Đăng Khoa
1
CHƯƠNG 1:
CƠ SỞ LÝ THUYẾT
1.1. Thương mại điện tử
* Giới thiệu world wide web
Các khái niệm cơ bản về World Wide Web
World Wide Web (WWW) hay còn gọi là Web là một dịch vụ phổ biến
nhất hiện nay trên Internet, 85% các giao dịch trên Internet ước lượng thuộc về
WWW. Ngày nay số Website trên thế giới đã đạt tới con số khổng lồ. WWW cho
phép bạn truy xuất thông tin văn bản, hình ảnh, âm thanh, video trên toàn thế giới.
Thông qua Website, các quý công ty có thể giảm thiểu tối đa chi phí in ấn và phân
phát tài liệu cho khách hàng ở nhiều nơi.
Cách tạo trang Web:
Có nhiều cách để tạo trang Web -Có thể tạo trang Web trên bất kì chương
trình xử lí văn bản nào:
-Tạo Web bằng cách viết mã nguồn bởi một trình soạn thảo văn bản như:
Notepad, WordPad,... là những chương trình soạn thảo văn bản có sẵn trong
Window.
-Thiết kế bằng cách dùng Web Wizard và công cụ của Word 97, Word 2000.
-Thiết kế Web bằng các phần mềm chuyên nghiệp: FrontPage, Dreamweaver,
Nescape Editor, phpDesigner,… Phần mềm chuyên nghiệp như phpDesigner sẽ giúp
em thiết kế trang Web dễ dàng hơn, nhanh chóng hơn, phần lớn mã lệnh HTML sẽ có
sẵn trong phần Code cho em.
Khi bạn muốn triển khai ứng dụng Web trên mạng, ngoài các điều kiện về
cấu hình phần cứng, em sẽ cài đặt cho mình dịch vụ Web Server Xampp.
Trình duyệt Web(Web Client hay Web Browser):
Trình duyệt Web là công cụ truy xuất dữ liệu trên mạng, là phần mềm giao
diện trực tiếp với người sử dụng. Nhiệm vụ của Web Browser là nhận các yêu cầu
của người dùng, gửi các yêu cầu đó qua mạng tới các Web Server và nhận các dữ
2
liệu cần thiết từ Server để hiển thị lên màn hình. Để sử dụng dịch vụ WWW, Client
cần có 1 chương trình duyệt Web, kết nối vào Internet thông qua một ISP. Các trình
duyệt thông dụng hiện nay là: Chrome và Mozilla Firefox. Mozilla Firefox là một
trình duyệt chuẩn cho phép trình bày nội dung do Web server cung cấp, cho phép
đăng kí tới bất kì Website nào trên Internet, hỗ trợ trình bày trang Web.
Webserver:
Webserver: là một máy tính được nối vào Internet và chạy các phần mềm được
thiết kế. Webserver đóng vai trò một chương trình xử lí các nhiệm vụ xác định, như tìm
trang thích hợp, xử lí tổ hợp dữ liệu, kiểm tra dữ liệu hợp lệ.... Webserver cũng là nơi lưu
trữ cơ sở dữ liệu, là phần mềm đảm nhiệm vai trò Server cung cấp dịch vụ Web.
Webserver hỗ trợ các ngôn ngữ lập trình khác nhau:
-IIS (Internet Information Service) : Hỗ trợ ASP, mở rộng hỗ trợ PHP
-Apache:Hỗ trợ PHP
Em sử dụng Webserver Xampp để phục vụ cho việc thiết về và cài đặt đề tài
thực tập.
Phân loại Web
Web tĩnh:
-Tài liệu được phân phát rất đơn giản từ hệ thống file của Server
-Định dạng các trang web tĩnh là các siêu liên kết, các trang định dạng Text,
các hình ảnh đơn giản.
-Ưu điểm: CSDL nhỏ nên việc phân phát dữ liệu có hiệu quả rõ ràng, Server
có thể đáp ứng nhu cầu Client một cách nhanh chóng. Ta nên sử dụng Web tĩnh khi
không thay đổi thông tin trên đó.
-Nhược điểm:Không đáp ứng được yêu cầu phức tạp của người sử dụng,
không linh hoat,...
Website động:
3
Về cơ bản nội dung của trang Web động như một trang Web tĩnh, ngoài ra nó
còn có thể thao tác với CSDL để đáp ứng nhu cầu phức tập của một trang Web. Sau
khi nhận được yêu cầu từ Web Client, chẳng hạn như một truy vấn từ một CSDL
đặt trên Server, ứng dụng Internet Server sẽ truy vấn CSDL này, tạo một trang
HTML chứa kết quả truy vấn rồi gửi trả cho người dùng.
1.2. Tìm hiểu về Laravel
1.2.1. Giới thiệu về Laravel
Laravel là một bộ mã nguồn PHP Framework hoàn toàn miễn phí, được thiết
kế và xây dựng theo chuẩn mô hình MVC. Laravel được phát hành theo giấy phép
MIT, với mã nguồn của nó được lưu trữ trên GitHub. Phiên bản đầu tiên được phát
hành ngày 22 tháng 1 năm 2012 bởi Taylor Otwell và phiên bản mới nhất hiện này là
Laravel 5 phát hành tháng 1 năm 2015. Theo thống kê đánh giá của một cuộc khảo
sát các PHP Framework phổ biến 2013, thì Laravel đứng thứ hạng cao, sau đó là
Zendframework, Symfony, Yii Framework, CodeIgniter… Đây là một framework
khá mới mẻ và dễ tiếp cận, được rất nhiều lập trình viên ưa thích và sử dụng.
Trước hết, sự tinh tế của Laravel nằm ở chỗ bắt kịp được xu hướng công
nghệ mà điểm nhấn ở đây là các tính năng mới trong các phiên bản PHP 5.3 trở lên.
Điều đó được thể hiện qua khái niệm namespace, composer, closure và rất nhiều
những tiêu chuẩn trong design pattern được áp dụng trên nền tảng framework này.
Đồng thời, với cách hướng dẫn đơn giản và dễ tiếp cận giống với Codeigniter
Framework đã khiến người dùng thích ngay từ lần đầu tiếp xúc.
Laravel là một kết hợp tinh hoa từ các Framework khác, nó cung cấp một bộ
công cụ mạnh mẽ và một kiến trúc ứng dụng kết hợp nhiều tính năng tốt nhất của
CodeIgniter, Yii, ASP.NET MVC, Ruby on Rails, Sinatra.
1.2.2. Sự phát triển của Laravel.
Đến cuối năm 2013, khi các chuyên gia tổng hợp về sự tăng trưởng của
Laravel trong những tháng cuối năm thì chúng ta có thể thấy Laravel vượt lên dẫn
đầu trước các PHP framework lớn mạnh khác một cách ngoạn mục, khi tỷ lệ % của
Laravel chiếm tới những 25,85%, trong khi các framework đình đám khác lại tụt
giảm thê thảm như Zend framework 2 chỉ còn 4,51% là 1 ví dụ.
4
Hình 1.1: Tỉ lệ người sử dụng Laravel năm 2013
5
Còn đến đầu năm 2015 với sự ra mắt của Laravel 5 thì tỉ lệ người dùng
Laravel cũng được thống kê như sau :
Hình 1.2: Tỉ lệ người sử dụng Laravel năm 2015
1.2.3. Các điểm nhấn đặc sắc của Laravel
Laravel là một PHP Framework. Nó giảm bớt các tác vụ thường gặp của các
trang web như authentication, routing, sessions, và caching. Nó ra đời vào tháng
04/2011, có lẽ là khá mới mẻ, nhưng cũng chính vì ra đời muộn màng như thế đã
buộc nó phải học hỏi cái hay từ các PHP Framework đàn anh đi trước. Không
những là các PHP Framework, nó còn học cái hay từ Ruby on Rails, ASP.NET
MVC, và Sinatra.
Tham khảo Best PHP Frameworks 2014 http://www.sitepoint.com/best-phpframeworks-2014/, ta thấy Laravel đang được cộng đồng đánh giá cao:
MVC trong Laravel
Ở phần Routes phía trên, chúng ta đã biết cách chỉ định cho Laravel ứng với
url pattern nào thì gọi đến controller, action nào.
Trong phần này, chúng ta sẽ tìm hiểu rõ hơn về controller trong Laravel,
cũng như Model và view.
6
Hình 1.3: MVC trong Laravel
Các tính năng nổi trội của Laravel có thể kể đến :
- RESTful routing: Sử dụng Closures để hỗ trợ việc trả lời các requests.
- Blade templating (tượng tự Razor View Engine): giúp chúng ta tạo ra các
mẫu cho các view và có thể kế thừa dễ dàng.
- Eloquent ORM: đây là một ORM tuyệt vời với khả năng migration data và
làm việc tốt với MySQL, Postgres, SQL Server và SQLite
- Đáp ứng nhiều loại ứng dụng, từ ứng dụng dành cho Enterprise, hay ứng
dụng hỗ trợ RESTful, hoặc là ứng dụng web đơn giản.
- Laravel được xây dựng trên một số thành phần của Symphony, và ai lập
trình PHP cũng biết rằng Symphony là một MVC Framework tuyệt vời, và Laravel
là một Framework tuyệt vời hơn khi kế thừa từ Symphony.
- Sử dụng Composer để quản lý các gói của bên thứ ba, tượng tự như Nuget
Package mà chúng ta thường sử dụng trên Visual Studio.
7
- Red, Green, Refactor: đây là các bước khi áp dụng TDD, nghĩa là Laravel
hỗ trợ TDD và Unit Test với PHPUnit và một IoC Container để bạn có thể áp dụng
Dependency Injection và viết Unit Test dễ dàng cho ứng dụng của bạn.
1.2.4. Cài đặt Laravel thông qua Composer.
Giới thiệu Composer
- Nếu có một thư viện quá tuyệt vời muốn tích hợp vào dự án. Khi mã
nguồn update hay thư viện update thì ta phải chạy theo nghiên cứu và update lại
chúng. Compose là tài nguyên, thư viện trung gian quản lý việc tịch hợp thư viện,
giải quyết vấn đề quản lý tài nguyên.
- Composer là bộ thư viện xây dựng dựa trên Json. Nhiệm vụ quản lý các
thư viện thứ 3 từ bên ngoài. Laravel sử dụng Composer để quản lý phụ thuộc của
nó. Vì vậy, trước khi sử dụng Laravel, bạn sẽ cần phải chắc chắn rằng bạn đã cài đặt
trên máy Composer của bạn.
- Link download Composer : https://getcomposer.org/download/
Hình 1.4: Cài đặt composer
8
Cài đặt Laravel thông qua Composer
- Tạo 1 project Laravel bằng Composer trong terminal của bạn:
composer create-project laravel/laravel your-project-name “5.0.0” -prefer-dist
Hình 1.5: Cấu trúc thư mục Laravel
1.2.5. Cấu trúc Laravel
1.2.5.1. Các thư mục chính
app
App chứa các mô hình và điều khiển các ứng dụng. App chứa Model và
Controller cho ứng dụng của bạn.
Booststrap
Thư mục này chứa các thiết lập cơ bản để bắt đầu ứng dụng
9
config
Thư mục này chứa tất cả các thiết lập cấu hình của các ứng dụng như kết nối
cơ sở dữ liệu, bao gồm các lớp lõi, cài đặt email… vv
database
Thư mục này chứa các mã cho các giao dịch cơ sở dữ liệu như tạo bảng,
chỉnh sửa các cột, thêm hàng mặc định trong cơ sở dữ liệu… vv
public
Thư mục chứa các file tĩnh (css, js, less, etc.). File index.php trong thư mục
này gọi đến các tập tin đó
resources
Thư mục chứa các mã nguồn của ứng dụng như Views, assets
Thư mục views chứa những file mẫu HTML mà người sử dụng bời controller
hay route.
Thư mục lang chứa những file ngôn ngữ dùng cho việc phân trang và chứng
thực form người dùng với ngôn ngữ tiếng Anh.
storage
Thư mục lưu trữ khuôn mẫu Blade, dữ liệu của sessions, caches và các file
khác được sinh ra bởi framework
test
Thư mục này chứa tất cả các bài tests của ứng dụng
vendor
Thư mục này chứa tất cả các file của bên thứ ba (phụ thuộc và prepackages
bổ sung cho các plugin) và các tập tin mã nguồn của Frameworl laravel.
1.2.5.2. Các thư mục và tập tin qua trọng khác
app/Http
Thư mục này chưa controller và routes. Routes được đặt trong file route.php
và controller được đặt trong thư mục Controllers. Trong đây còn có 2 folder khác là
Resquests và Middleware. Resquests chứa các file resquest, Middleware chứa các
middlerware.
10
app/ Exception:
Thư mục chứa các classes ngoại lệ.
app/ Services
Thư mục này được sử dụng để xác định các Services mới.
app/ Providers
Thư mục này đăng ký và liên kết với các Services.
resources/views
Thư mục này chứa các tập tin views.
.env
Đây là một tập tin ẩn trong thư mục gốc của ứng dụng. Tập tin này có chứa
các dữ liệu cá nhân như tên và mật khẩu cơ sở dữ liệu, dữ liệu cấu hình email…vv
1.2.6. Các thành phần cơ bản trong Laravel
1.2.6.1. Routing
Basic Routing (định tuyến cơ bản)
Bạn sẽ xác định hầu hết các tuyến cho ứng dụng của bạn trong tập tin
app/Http/routes.php, được nạp bởi các lớp App\Providers\RouteServiceProvider.
Hầu hết các định tuyến Laravel cơ bản chỉ đơn giản là chấp nhận một URL và a
Closure :
- Basic GET Route (định tuyến GET cơ bản)
Route::get('/', function(){
return 'Hello World';
});
- Other Basic Routes (các định tuyến cơ bản khác)
Route::post('foo/bar', function(){
return 'Hello World';
});
Route::put('foo/bar', function(){
//
});
Route::delete('foo/bar', function(){
11
//
});
- Registering A Route For Multiple Verbs (đăng ký một định tuyến đối với
nhiều động từ)
Route::match(['get', 'post'], '/', function(){
return 'Hello World';
});
- Registering A Route That Responds To Any HTTP Verb (đăng ký một
định tuyến đáp ứng đến động từ HTTP bất kỳ)
Route::any('foo', function(){
return 'Hello World';
});
Thông thường, bạn sẽ cần phải tạo ra đường dẫn đến các định tuyến của bạn,
bạn có thể làm như vậy bằng cách sử dụng url helper:
$url = url('foo');
Named Routes (Định tuyến được đặt tên)
- Các định tuyến được đặt tên cho phép bạn để thuận tiện tạo ra các URL
hoặc chuyển hướng cho một định tuyến cụ thể. Bạn có thể chỉ định một tên cho một
định tuyến với mảng khóa as :
Route::get('user/profile', ['as' => 'profile', function(){
//
}]);
- Bạn cũng có thể chỉ định tên định tuyến cho các hành động điều khiển:
Route::get('user/profile', [
'as' => 'profile', 'uses' => 'UserController@showProfile'
]);
- Giờ, bạn có thể sử dụng tên của định tuyến khi tạo URL hoặc chuyển hướng:
$url = route('profile');
$redirect = redirect()->route('profile');
12
- Phương thức currentRouteName trả về tên của các định tuyến xử lý các
yêu cầu hiện tại:
$name = Route::currentRouteName();
1.2.6.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
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 controller nameController
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à Url là demo-action
13
- 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.2.6.3. Eloquent ORM
Introduction (Giới thiệu)
- Các Eloquent ORM kèm với Laravel cung cấp một ActiveRecord đẹp mắt,
đơn giản để thực hiện làm việc với cơ sở dữ liệu của bạn. Mỗi bảng cơ sở dữ liệu có
một "Model" tương ứng được sử dụng để tương tác với các bảng đó.
- Trước khi bắt đầu, hãy chắc chắn đã cấu hình một kết nối cơ sở dữ liệu trong:
app/config/database.php.
Basic Usage (Cách sử dụng cơ bản)
- Để bắt đầu, tạo ra một Eloquent model. Model thường chứa trong các thư
mục app/models, nhưng bạn được tự do để đặt chúng ở bất cứ đâu có thể được tự
động tải tập tin theo composer.json của bạn.
- Defining An Eloquent Model (Định nghĩa một mô hình Eloquent):
class User extends Eloquent {}
Lưu ý : Laravel không nói các bảng của Eloquent chỉ để sử dụng cho User
model của Laravel. Các trường hợp thấp hơn, phần lớn tên của các lớp sẽ được sử
dụng như tên bảng trừ khi tên khác được quy định một cách rõ ràng. Vì vậy, trong
trường hợp này, Eloquent sẽ cho rằng các lưu trữ User model ghi trong bảng người
dùng. Bạn có thể chỉ định một bảng tùy chỉnh bằng cách định nghĩa một thuộc tính
bảng trên mô hình của bạn.
Insert, Update, Delete (Chèn, Cập nhật, Xóa)
- Để tạo ra một bản ghi mới trong cơ sở dữ liệu từ một mô hình, chỉ đơn
giản là tạo ra một trường mô hình mới và gọi phương thức save.
- Saving A New Model (Lưu một mô hình mới)
$user = new User;
$user->name = 'John';
$user->save();
14
Lưu ý: Thông thường, các mô hình Eloquent của bạn sẽ có các khoá tự động
tăng. Tuy nhiên, nếu bạn muốn chỉ định các khóa riêng của bạn thì hãy thiết lập
thuộc tính incrementing trên mô hình của bạn là false.
Sau khi lưu hoặc tạo ra một mô hình mới mà sử dụng ID tự động tăng, bạn
có thể lấy lại ID bằng cách truy cập thuộc tính id của đối tượng:
$ insertedId = $ user-> id;
- Setting The Guarded Attributes On The Model (Thiết lập các thuộc tính
bảo vệ trong mô hình)
class User extends Eloquent {
protected $guarded = array('id', 'account_id');
}
- Using The Model Create Method (Sử dụng mô hình tạo phương thức)
/* Tạo một người dùng mới trong cơ sở dữ liệu… */
$user = User::create(array('name' => 'John'));
/* Lấy người dùng bởi các thuộc tính, hoặc tạo ra nó nếu nó không tồn tại... */
$user = User::firstOrCreate(array('name' => 'John'));
/* Lấy người sử dụng bởi các thuộc tính, hoặc khởi tạo một trường mới... */
$user = User::firstOrNew(array('name' => 'John'));
- Updating A Retrieved Model (Cập nhật một mô hình lấy dữ liệu)
$user = User::find(1);
$user->email = '[email protected]';
$user->save();
- Saving A Model And Relationships (Lưu trữ một mô hình và các mối
quan hệ)
Đôi khi bạn có thể lưu lại không chỉ là một mô hình, mà còn tất cả các mối
quan hệ của nó. Để làm như vậy, bạn có thể sử dụng phương thức push:
$user->push();
Bạn cũng có thể chạy bản cập nhật như truy vấn đối với một tập hợp các
mô hình:
15