1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng website bán hàng cho công ty may mặc an thắng, hà nội

58 335 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 2,39 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với phiên bản 3 này PHP cũng cung cấp một số lượng cơ sở dữ liệu khá đồ sộ gồm cả MySQL, mSQL, OPBC và Oracle,nó cũng có thể làm việc với các hình ảnh các file dữ liệu, FTP, XML và host

Trang 1

LỜI CẢM ƠN

Để hoàn thành tốt đồ án này, lời đầu tiên em xin cám ơn Ban Giám Hiệu trường Đại Học Công Nghệ Thông Tin & Truyền Thông đã tạo điều kiện cho em được học tập tại trường, và đặc biệt em xin gửi lời cám ơn chân thành nhất đến cô

Đoàn Thị Bích Ngọc giảng viên Trường Công Nghệ Thông Tin & truyền thông đã

trang bị cho em những kiến thức chuyên môn, quan tâm và tận tình hướng dẫn, giúp

đỡ em hoàn thành một cách tốt nhất trong đợt làm đồ án này

Bên cạnh đó để hoàn thành tốt đồ án này em cũng đã nhận được nhiều sự giúp đỡ những lời động viiên quý báu của bạn bè, các anh chị em xin chân thành cảm ơn

Tuy nhiên do thời gian hạn hẹp, cũng như lượng kiến thức còn hạn chế nên bài báo cáo của em sẽ khó tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và sự chỉ bảo tận tình của quý Thầy Cô và các bạn để thực hiện tốt đồ án này Một lần nữa em xin chân thành cảm ơn

Thái Nguyên, ngày….tháng… năm 2017

Sinh viên thực hiện

Trương Văn Mạnh

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan bài đồ án tốt nghiệp là do chính tôi thực iện, số liệu và kết quả nghiên cứu trong luận văn này là trung thực và chưa hề được sử dụng

để bảo vệ một học vị nào Các thông tin trích dẫn trong đồ án đã được chỉ rõ nguồn gốc rõ ràng và được phép công bố

Xin chân thành cảm ơn !

Thái Nguyên, ngày….tháng… năm 2017

Sinh viên thực hiện

Trương Văn Mạnh

Trang 3

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.1.Ngôn ngữ PHP 7

1.1.1Tổng quan về PHP 7

1.1.2 Lịch sử ra đời và phát triển 8

1.1.3 Xuất giá trị ra trình duyệt 8

1.1.4 Biến ,hằng,chuỗi và các kiểu dữ liệu 9

1.1.5 Phương thức trong PHP 10

1.2.Tổng quan về laravel 10

1.2.1 Laravel là gì 10

1.2.2 Lịch sử phát triển 10

1.3 Cài đặt laravel 12

1.4 Sơ lược các tính năng cơ bản của laravel 15

1.5 Làm việc với laravel 16

1.5.1 Route trong laravel 16

1.5.2 Controller trong laravel 19

1.5.3 View trong laravel 20

1.5.4 Model trong laravel 22

1.5.5 Sử dụng Blade Template 24

1.5.6 Làm việc với dữ liệu 29

CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 31

2.1 Khảo sát đánh giá hệ thống cũ 31

2.1.1 Hoạt động bán hàng của công ty diễn ra trên thực tế như sau 31

2.1.2 Đánh giá sản phẩm 31

2.2 Phân tích thiết kế hệ thống 32

Trang 4

2.2.1 Các tác nhân của hệ thống 32

2.2.2 Phân tích yêu cầu hệ thống 33

2.2.3 Thiết kế hệ thống 36

CHƯƠNG 3:XÂY DỰNG WEBSITE 50

3.1 Giao diện trang chủ 50

3.2 Giao diện trang chi tiết sản phẩm 51

3.3 Giao diện trang giỏ hàng 52

3.4 Giao diện trang thanh toán 53

3.5 Giao diện trang liên hệ 54

3.6 Giao diện trang thông tin user 55

KẾT LUẬN 56

TÀI LIỆU THAM KHẢO 57

Trang 5

DANH MỤC HÌNH

Hình 2.3.3.1:Biểu đồ UC tổng quát 36

Hình 2.3.3.2:Biểu đồ UC khách hàng 36

Hình 2.3.3.3:Biểu đồ UC admin 37

Hình 2.3.3.4:Biểu đồ trình tự cho chức năng đăng ký 37

Hình 2.3.3.5:Biểu đồ trình tự chức năng tìm kiếm 38

Hình 2.3.3.6:Biểu đồ trình tự chức năng xem chi tiết sản phẩm 38

Hình 2.3.3.7 Biểu đồ trình tự thêm sản phẩm vào giỏ hang 39

Hình 2.3.3.8:Biểu đồ trình tự quản lí giỏ hàng 40

Hình 2.3.3.9:Biểu đồ trình tự chức năng thanh toán 41

Hình 3.3.3.10:Biểu đồ trình tự chức năng đăng nhập admin 42

Hình 3.3.3.11:Biểu đồ trình tự chức năng thêm sản phẩm 43

Hình 3.3.3.13 Biểu đồ trình tự sửa sản phẩm 44

Hình 3.3.3.12:Biểu đồ trình tự quản lí đơn hàng cho admin 45

Hình 3.3.3.13:Biểu đồ cộng tác đăng nhập hệ thống 46

Hình 3.3.3.14:Biểu đồ hoạt động quản lí sản phẩm 47

Hình 3.3.3.15:Biểu đồ hoạt động xem chi tiết sản phẩm 48

Trang 6

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 cô giáo Thạc sĩ Đoàn Thị

Bích Ngọc, em lựa chọn đề tài “Xây dựng website bán hàng cho công ty may mặc An Thắng, Hà Nội”

* Mục đích nghiên cứu

- Khảo sát yêu cầu thực tế tại công tyđể nắm bắt các thông tin về sản phẩm

mà công ty đang sản xuất, 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

Trang 7

CHƯƠNG 1:CƠ SỞ LÝ THUYẾT 1.1.Ngôn ngữ PHP

1.1.1Tổng quan về PHP

PHP (Hypertext Preprocessor) được giới thiệu năm 1994 bởi R Lerdoft, như một bộ sưu tập của ngôn ngữ chưa chặt chẽ dựa vào Perl và các công cụ của trang chủ Vì quá trình xử lý dựa trên máy chủ nên các trang Web được viết bằng PHP sẽ

dễ dàng hơn ở bất cứ hệ điều hành nào Nói một cách ngắn gọn: PHP là một ngôn ngữ lập trình kiểu script, chạy trên Server và trả về mã HTML cho trình duyệt

PHP (Hypertext Preprocessor) được giới thiệu năm 1994 bởi R Lerdoft, như một bộ sưu tập của ngôn ngữ chưa chặt chẽ dựa vào Perl và các công cụ của trang chủ Vì quá trình xử lý dựa trên máy chủ nên các trang Web được viết bằng PHP sẽ

dễ dàng hơn ở bất cứ hệ điều hành nào Nói một cách ngắn gọn: PHP là một ngôn ngữ lập trình kiểu script, chạy trên Server và trả về mã HTML cho trình duyệt

Cũng giống như hầu hết các ngôn ngữ lập trình khác, PHP có thể nối trực tiếp với HTML, Mã PHP tách biệt với HTML bằng các thực thể đầu và cuối

Khi một tài liệu được đưa ra phân tích, quá trình xử lý PHP chỉ được thực hi

ện ở những điểm quan trọng, rồi sau đó đưa ra kết quả

Mã PHP được đặt trong một kiểu tag đặc biệt cho phép ta có thể vào hoặc ra khỏi chế độ PHP,cú pháp của PHP cơ bản cũng giống như một số ngôn ngữ lập trình khác, đặc biệt là C và Perl

PHP được nhận dạng dưới 4 dạng phiên bản

Trang 8

Ví dụ

<?php Echo “Hello, World”; ?>

Ví dụ

<php Echo “Hello, World” ; ?>

Tuy nhiên phiên bản đầu tiên vẫn được ưa chuộng và dùng phổ biến hơn

Với phiên bản 3 này PHP cũng cung cấp một số lượng cơ sở dữ liệu khá đồ

sộ gồm cả MySQL, mSQL, OPBC và Oracle,nó cũng có thể làm việc với các hình ảnh các file dữ liệu, FTP, XML và host của các kĩ thuật ứng dụng khác

Cho đến nay thì PHP đã được công bố tới phiên bản 5 và càng ngày càng hoàn hảo và dễ sử dụng, và là một dịch vụ hàng đầu miễn phí Một số nhà phát triển ứng dụng web, thường sử dụng PHP để xây dựng các ứng dụng thương mại điện tử cho đến thời điểm tháng 1 năm 2001 có 5 triệu tên miền trên thế giới sử dụng PHP

PHP là open source, điều này có nghĩa là bạn có thể làm việc trên mã nguồn, thêm, sửa, sử dụng và phân phối chúng

1.1.3 Xuất giá trị ra trình duyệt

Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau:

echo "Thông tin";

printf "Thông tin"; Thông tin bao gồm : biến, chuỗi, hoặc lệnh HTML … Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."

Trang 9

1.1.4 Biến ,hằng,chuỗi và các kiểu dữ liệu

Biến

Biến được xem là vùng nhớ dữ liệu tạm thời Và giá trị có thể thay đổi được Biến được bắt đầu bằng ký hiệu "$" Và theo sau chúng là 1 từ, 1 cụm từ nhưng phải viết liền hoặc có gạch dưới 1 biến được xem là hợp lệ khi nó thỏa các yếu tố :

+ Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, số hay dấu gạch dưới

+ Tên của biến không được phép trùng với các từ khóa của PHP

Trong PHP để sử dụng 1 biến chúng ta thường phải khai báo trước, tuy nhiên đối với các lập trình viên khi sử dụng họ thường xử lý cùng một lúc các công việc, nghĩa là vừa khai báo vừa gán dữ liệu cho biến Bản thân biến cũng có thể gán cho các kiểu dữ liệu khác Và tùy theo ý định của người lập trình mong muốn trên chúng

Hằng

Nếu biến là cái có thể thay đổi được thì ngược lại hằng là cái chúng ta không thể thay đổi được Hằng trong PHP được định nghĩa bởi hàm define theo cú pháp: define (string tên_hằng, giá_trị_hằng )

Cũng giống với biến hằng được xem là hợp lệ thì chúng phải đáp ứng 1 số yếu tố :

+ Hằng không có dấu "$" ở trước tên

+ Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh

+ Hằng chỉ được phép gán giá trị duy nhất 1 lần

+ Hằng thường viết bằng chữ in để phân biệt với biến

Trang 10

$_GET["id"] sẽ được giá trị là 50

1.2.2 Lịch sử phát triển

Laravel được Taylor Otwell tạo ra như một giải pháp thay thế cho CodeIgniter, cung cấp nhiều tính năng quan trọng hơn như xác thực và phân quyền

Trang 11

Tôi cũng không chắc về điều này, nhưng có thể Taylor vốn là một NET developer khi bắt đầu có nhu cầu làm việc với PHP khoảng vào những năm 2010-2011, đã chọn CodeIgniter khi đó đang là một ngôi sao mới nổi, thậm chí lấn át cả Symfony gạo cội Và Taylor nhanh chóng nhận ra những điểm khiếm khuyết ở CodeIgniter, với tài năng và kiến thức xuất sắc về design-pattern của mình, Taylor quyết định tự mình tạo ra một framework sao cho thật đơn giản, dễ hiểu, hỗ trợ lập trình viên hiện thực ý tưởng một cách nhanh nhất bằng nhiều tính năng hỗ trợ như Eloquent ORM mạnh mẽ, xác thực đơn giản, phân trang hiệu quả, và hơn thế nữa

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

Trang 12

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)

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

Laravel 5.2 đã chính thức ra mắt ngày 21/12/2015 Phiên bản 5.2 lần này bao gồm 1 số tính năng mới như:hỗ trợ multiple authentication ,authentication scaffolding,implicit model binding…

Hiện nay laravel đã nâng cấp lên bản 5.4 phiên bản này có những một số đặc điểm mới như: bạn có thể khai báo và sử dụng class Facade mọi nơi trong project của mình mà không cần đăng ký với Providers như phiên bản 5.3, Cú pháp route bây giờ được định nghĩa linh hoạt hơn,

Trang 14

Tiếp theo mình sẽ hướng dẫn các bạn tạo một project laravel 5.3 Khi các bạn dùng xampp thì mặc định project của các bạn sẽ để ở trong đường dẫn C:\xampp\htdocs vì vậy các bạn mở cmd máy của các bạn lên và chuyển đến đường

folder htdocs trong xampp bằng cách gõ lệnh: cd C:\xampp\htdocs

Để tạo một project bạn dùng lệnh: composer create-project laravel/laravel ten_project Lệnh này nó sẽ download trực tiếp project ở trên github

về máy tính của bạn - vì vậy máy tính bạn cần phải kết nối với internet Các bạn có

thể xem ở hình bên dưới đây mình tạo một project tên là blog

Trang 15

Sau đó các bạn vào thư mục project các bạn vừa tạo bằng lệnh trên cmd: cd

ten_project Ở đây mình sẽ dùng lệnh cd blog vì mình tạo tên project của mình là

blog

Để chạy được project thì các bạn gõ lệnh: php artisan serve Khi đó các bạn

vào trình duyệt gõ đường dẫn http://localhost:8000, nó sẽ ra trang như bên dưới

1.4 Sơ lược các tính năng cơ bản của laravel

Bundles : Ở laravel phiên bản 3.x, cung cấp một hệ thống đóng gói các

module, với rất nhiều tính năng đi kèm

Composer : Ở laravel phiên bản 4.x, được sử dụng như một công cụ quản lý

với tính năng như thêm các gói cài đặt, các chức năng PHP phụ trợ cho Laravel có trong kho Packagist

Trang 16

Eloquent ORM (object relation mapping) : ánh xạ các đối tượng và quan hệ

cơ sở dữ liệu, cung cấp các phương thức nội bộ để thực thi đồng thời cũng bổ sung các tính năng hạn chế về mối quan hệ giữa các đối tượng cơ sở dữ liệu Eloquent ORM trình bày các bảng trong cơ sở dữ liệu dưới dạng các lớp, cung cấp thêm lựa chọn truy cập cơ sở dữ liệu trực tiếp mới mẻ hơn, chuyên nghiệp hơn

Application logic : Là một phần của phát triển ứng dụng, được sử dụng bởi

bộ điều khiển controllers

Routes : Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết

(link) Khi một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một định danh liên kết thống nhất sẽ được tạo ra bởi laravel

Restful Controller : cung cấp các tùy chọn để tách các logic phía sau các

request HTTP POST, GET

Class auto loading : cung cấp việc tải tự động các class trong PHP, mà

không cần include các class vào Tùy thuộc vào yêu cầu các class cần thiết sẽ được nạp vào, hạn chế các class không cần thiết

View : chứa các mã html, hiển thị dữ liệu được chỉ định bởi controller

Migrations : cung cấp một hệ thống kiểm soát các phiên bản lược đồ cơ sở

dữ liệu (database cheme), làm cho web ứng dụng có khả năng tương tác phù hợp những thay đổi logic, các đoạn mã code của ứng dụng và những thay đổi cần thiết trong việc bố trí cơ sở dữ liệu, triển khai nới lỏng và cập nhật các ứng dụng

Unit Testing : đóng một vai trò quan trọng trong Laravel, Unit testting chứa

rất nhiều các hệ thống unit testing, giúp phát hiện và ngăn chặn lỗi trong khuôn khổ nhất định Unit Testing có thể được chạy thông qua tiện ích command-line

Automatic pagination : Tính năng tự động phân trang được tích hợp vào

Laravel giúp đơn giản hóa các nhiệm vụ thực hiện phân trang so với các phương pháp thông thường

1.5 Làm việc với laravel

1.5.1 Route trong laravel

Route dịch ra có nghĩa là tuyến đường, nghe chẳng có tý gì liên quan đến lập trình nhưng ta có thể hiểu rằng route nó nằm vai trò chỉ đường cho yêu cầu (request)

Trang 17

đi đến đâu Ta có thể hiểu nôm na như sau: khi index.php nhận được request từ người dùng, nó sẽ đưa request này cho route, từ route sẽ chỉ dẫn tiếp cho request này đi đến đâu hoặc cũng có thể trả lời ngay tại route

Ví dụ khi người dùng truy cập vào website với đường dẫn

là domain.com/news, thì lúc này Route sẽ nhận được một phần trong URL

là /news và nó sẽ xử lý request đó gọi đến Controller News hoặc là một thao tác

khác (xử lý thế nào thì tùy vào coder) Đặc biệt hơn các Framework trước đây như

Codeigniter là trong Laravel Route có rất nhiều loại khác nhau như Route dành cho phương thức POST, Route dành cho phương thức GET ở cùng một URL

Hầu hết các route của laravel định nghĩa trong file app/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 nhiều phương thức

Route::any nhận tất cả các phương thức

Route::filte tạo ra bộ lọc nhằm mục đích nào đó

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

Trang 18

Khi action là một mảng

Có 2 tham số thường được sử dụng trong mảng là name, và uses, ngoài ra

bạn còn có thể sử dụng filter trong này Trong đó name là tên của route mình sẽ đặt, còn uses sẽ gọi đến phương thức của Controller nào đó

Cú pháp

Route::get($uri,$array);

Bạn mở file routes.php và thêm

Route::get('/array',['name'=>'get.array','uses'=>'HomeController@showWelcome']);

Bạn truy cập vào đường dẫn: http://tênmiềnảocủabạn/array và sẽ thấy hiện ra một giao diện không khác gì khi bạn chạy http://tênmiềnảocủabạn/ đúng không nào Tại sao lại vậy? Trước hết bạn nhìn vào đoạn code trên sẽ thấy HomeController và thắc mắc ở đâu ra cái quái này vậy Câu trả lời là đó là controller mặc định có sẵn khi cài đặt laravel, bạn có thể xem controller này tại file app/controllers/HomeController.php Khi route này được kích hoạt nó sẽ gọi

đến phương thức showWelcome của HomeController và để controller này xử lý

Route::match($methods, $uri, $action);

Bạn có thể mở file routes.php và thêm vào

Route::match(['GET', 'POST','PUT'],'/match',function(){

Trang 19

return 'match route';

});

1.5.1.1d Route:any

Cú pháp và cách sử dụng của loại route này không khác Route::get() là mấy, chỉ có điều route này nhận request với tất cả các method như: POST, GET, DELETE,

Tên Controller phải trùng với tên File Ví dụ bạn tạo Controller tên DemoController thì file phải tên là DemoController.php

Tạo Controller kế thừa trực tiếp từ Controller trong Laravel

Bước 1: Bạn tạo file DemoController.php nằm trong thư mục app/controllers Bước 2: Bạn viết code tạo Controller trong file DemoController.php như sau:

<?php

class DemoController extends Controller{

}

Tạo Controller kế thừa từ một Controller khác

Bây giờ ta sẽ tạo một ExtController và DemoController, DemoController sẽ

kế thừa từ ExtController

Trang 20

Bước 1: Tạo ExtController, bạn tạo file ExtController.php nằm trong folder app/controllers với nội dung như sau:

class ExtController extends Controller{

}

Bước 2: Tạo DemoController, bạn tạo file DemoController.php nằm trong folder app/controllers với nội dung như sau:

1.4.2.2 Tạo action controller

Khi làm việc với Route:Controller thì bạ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 –

Khi làm việc với Route:resource thì controller laravel hỗ trợ 8 action: index,

create, store, show, edit, update, destroynhưng trong controller không nhất thiết phải tạo đủ 8 action này

Truyền tham số vào action

Tên tham số trong route đặt trong cặp thẻ {}, ví dụ {id}

Trong action sẽ nhận tham số tương ứng Ví dụ ta có route là {title}' thì trong action sẽ nhận hai tham số tương ứng là nameAction($id, $title)

'/chitiet-{id}-Ví dụ:

Route::get('/chitiet-{id}','NewsController@detail');

1.5.3 View trong laravel

Tất cả view của Laravel sẽ mặc định lưu trong resources/views Ví dụ đơn giản về một file view như sau:

<! View stored in resources/views/greeting.php >

Trang 21

$name ở view được gán giá trị “James” ở route

Dĩ nhiên bạn cũng có thể lưu file view và các thư mục con bên trong resources/views resources/views, ví dụ, nếu bạn lưu view tại resources/views/a dmin/profile.php, bạn có thể sử dụng view bằng cách:

return view('admin.profile', $data);

Truyền dữ liệu vào view

Như đã nói ở trên, tham số thứ hai của hàm view() nhận vào một mảng với key và value, bạn có thể thêm vào mảng bao nhiêu cặp key=>value tùy ý để truyền

dữ liệu từ route/controller sang view:

Chia sẻ dữ liệu với tất cả các view

Đôi khi, bạn cần chia sẻ một thông tin cho tất cả các view sẽ hiển thị trên ứng dụng, ví dụ: hiển thị thông tin user đã đăng nhập lên thanh trạng thái của các trang backend chẳng hạn Bạn sẽ không muốn việc lặp đi lặp lại việc insert data trong hàm view() đâu Thay vào đó, bạn có thể dùng hàm share() , gọi nó trong hàm boot() của một Laravel service provider bất kỳ Với kiến thức hiện tại, có thể

Trang 22

bạn chưa hiểu “service provider” là gì? Hãy tạm chấp nhận và gọi hàmshare() trong file app/Providers/AppServiceProvider.php :

1.5.4 Model trong laravel

Model là cách gọi chung cho các object chịu trách nhiệm quản lý kết nối và thao tác dữ liệu trên hệ quản trị cơ sở dữ liệu Sử dụng model sẽ giúp chúng ta:

Làm “mờ” đi tính chuyên biệt phía sau của các hệ quản trị cơ sở dữ liệu khác nhau

Trang 23

Tập trung vào code xử lý business và quên đi các câu lệnh thao tác trên các HQT CSDL

Đóng gói – trừu tượng hóa dữ liệu các thực thể vào ứng dụng

Đặc tính cơ bản nhất và quan trọng nhất của Eloquent model đó là tự động mapping thuộc tính của model với các cột trong database Điều này giúp bạn

đỡ mất rất nhiều thời gian trong việc khai báo model cũng làm cho cách sử dụng tên thống nhất từ model qua table Khi cần thao tác dữ liệu, bạn chỉ cần gọi chính xác tên cột trong bảng là có thể đọc/ghi được dữ liệu vào thuộc tính tương ứng

Cách tạo model

Laravel sử dụng thư viện Eloquent làm lớp giao tiếp model, do đó khi đọc hay tìm kiếm tài liệu, “eloquent” chính là từ khóa của các bạn

Dùng lệnh artisan

php artisan make:model Person migration

Model created successfully

Created Migration: 2017_02_21_173117_create_people_table

Truy vấn dữ liệu

Lấy tất cả record

Sử dụng hàm All() Hàm này lấy tất cả các dòng trong bảng Trả ra luôn là một collection (một lớp bao Array hỗ trợ Laravel xử lý mảng thông minh hơn Cách dùng tương tự array, có thể dùng trong foreach) Có thể rỗng hoặc có dữ liệu

Lấy dữ liệu theo điều kiện

Bạn sẽ phải quên đi việc viết truy vấn bằng SQL, tuy nhiên cách viết truy vấn bằng Eloquent khá tương đồng với viết SQL:

where() : sử dụng where như trong SQL để yêu cầu điều kiện truy vấn Hàm nhận 2 hoặc 3 tham số Với 2 tham số, đầu tiên là tên cột, thứ hai là giá trị cần so sánh Với 3 tham số, thứ 2 là toán tử so sánh, chấp nhận tất cả toán tử so sánh trong SQL như >,<,>=,<=,= tham số thứ 3 là giá trị cần so sánh

AND / OR : để thực hiện gom nhiều điều kiện, bạn chỉ cần xâu chuỗi liên tục các câu lệnh where() bằng dấu ->

Trang 24

1.5.5 Sử dụng Blade Template

Blade rất đơn giản, nhưng lại là một templating engine đầy mạnh mẽ! Không giống những PHP templating engine phổ biến khác, Blade không giới hạn chúng ta sử dụng code PHP trong views Tất cả các file Blade sẽ được dịch thành file code PHP và cache cho đến khi file Blade bị thay đổi, điều đó cũng có nghĩa là Blade tự làm tất cả những việc cần thiết để có thể chạy views cho ứng dụng

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à timf những biểu thức của engine và gán dữ liệu vào

Template engine Blade đây 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

Trang 25

Các cú pháp sử dụng trong Blade template

Trang 26

Sử dụng vòng lặp và các cấu trúc điều khiể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

Trang 27

@for ($i = 0; $i < 10; $i++)

The current value is {{ $i }}

@endfor

@foreach ($users as $user)

<p>This is user {{ $user->id }}</p>

@endforeach

@forelse ($users as $user)

<li>{{ $user->name }}</li>

@empty

<p>No users</p>

Trang 28

Ta cũng có thể bao gồm điều kiện với khai báo chỉ thị trong một dòng:

@foreach ($users as $user)

@each('view.name', $jobs, 'job')

Đối số thứ nhất là view thành phần để render cho mỗi phần tử trong mảng hoặc collection Đối số thứ hai là mảng hoặc collection mà bạn muốn lặp qua, trong khi đó, đối số thứ ba là tên của biến mà sẽ được gán cho lần lặp hiện tại trong view

Ví dụ, nếu bạn đang lặp qua một mảng có tên là jobs, thì thông thường bạn sẽ muốn

Trang 29

truy cập vào mỗi job như là một biến job bên trong view thành phần của mình Key cho lần lặp hiện tại sẽ có sẵn như là biến key bên trong view thành phần

Comment

Blade cũng cho phép bạn định nghĩa các comment trong các view của mình Tuy nhiên, không giống như các comment của HTML Các comment của Blade không được bao gồm trong HTML được trả về bởi ứng dụng

{{ This comment will not be present in the rendered HTML }}

1.5.6 Làm việc với dữ liệu

1.5.6.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:

Ngày đăng: 09/11/2017, 16:13

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w