
lOMoARcPSD| 58797173
BÁO CÁO THỰC TẬP TỐT NGHIỆP
XÂY DỰNG WEBSITE BẰNG LARAVEL

lOMoARcPSD| 58797173
MỤC LỤC
PHẦN 1. MỞ ĐẦU...................................................................................................3
1. Lý do chọn đề tài.............................................................................................3
2. Mục đích nghiên cu (các kết quả cần đạt được)............................................3
3. Đối tượng và phạm vi nghiên cu...................................................................3
4......................................................................................Phương pháp nghiên cu:
............................................................................................................................3
PHẦN 2. ĐỀ CƯƠNG CHI TIẾT.............................................................................5
CHƯƠNG 1: ĐẶT VẤN ĐỀ.....................................................................................5
1.1 PHP Framework là gì?.....................................................................................5
1.2 Tại sao nên s dụng PHP Framework?.............................................................5
1.3 Tại sao nên s dụng Laravel Framework?........................................................6
CHƯƠNG 2:.............................................................................................................7
GIỚI THIỆU VỀ LARAVEL....................................................................................7
2.1 Cấu trúc thư mục của
Laravel...........................................................................7
2.2 Cài đặt Laravel.................................................................................................8
2.2.1 Cài Composer.............................................................................................8
2.2.2 Cài Laravel.................................................................................................9
2.3 Cấu hình cơ bản cho ng dụng.........................................................................9
2.4 Chạy ng dụng đầu ên với Laravel................................................................9
2.5 Route trong Laravel Framework.....................................................................10
2.5.1 Basic Roung...........................................................................................10
2.5.2 Route
Parameters......................................................................................11
2.5.3 Route Filters.............................................................................................11
2.5.4 Name Route.............................................................................................13
2.5.5 Route Groups...........................................................................................14
2.5.6 Route Prexing........................................................................................14
2.6 View trong Laravel Framework......................................................................15
2.7 Controller trong Laravel Framework..............................................................16

lOMoARcPSD| 58797173
2.7.1 Khai báo Controller trong Laravel Framework:.......................................16
2.7.2 Chạy Controller theo phương thc
Route::get.........................................17
2.7.3 Implicit Controllers – S dụng phương thc
Route::controller................17
2.7.4 RESTful Resource Controllers – S dụng phương thc Route::resource.18
2.7.5 Controller với Filter.................................................................................20
2.8 Kết nối cơ sở d liệu......................................................................................21
2.8.1 Cấu hình kết nối cơ sở d liệu trong Laravel Framework........................21
2.8.2 Database
Transacons..............................................................................22
2.9 S dụng Query Builder..................................................................................23
2.9.1 Truy vấn d liệu.......................................................................................24
2.9.2 Join bảng d liệu......................................................................................26
2.9.3 Hàm trong Laravel Framework................................................................27
2.9.4 Raw Expressions......................................................................................27
2.9.5 Câu lệnh Inserts d liệu...........................................................................27
2.9.6 Câu lệnh Updates d liệu.........................................................................27
2.9.7 Câu lệnh Deletes d liệu..........................................................................27
2.9.8 Câu lệnh Union........................................................................................28
2.10 Eloquent ORM.............................................................................................28
2.10.1 Lấy d liệu.............................................................................................28
2.10.2 Thêm d liệu (Insert).............................................................................29
2.10.3 Cập nhật d liệu (Update)......................................................................29
2.10.4 Xóa d liệu (Delete)...............................................................................29
2.11 S dụng Migraons và Schema Builder.......................................................30
2.11.1 Lớp Schema Builder – thao tác với bảng CSDL.....................................30
2.11.2 Migraons – Quản lý CSDL...................................................................32
CHƯƠNG 3:............................................................................................................35
PHÂN TÍCH - THIẾT KẾ WEBSITE.....................................................................35
1. Giới thiệu chương.......................................................................................35
2. Nội dung.....................................................................................................35
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.........................................40

lOMoARcPSD| 58797173
4. Kết luận:...........................................................................................................40
4.1 Kết quả đạt
được.........................................................................................40
4.2 Hướng phát
triển............................................................................................40
DANH MỤC TÀI LIỆU THAM KHẢO.................................................................41

lOMoARcPSD| 58797173
LỜI MỞ ĐẦU
PHẦN 1. MỞ ĐẦU
1. Mục đích nghiên cứu (các kết quả cần đạt được).
Xây dựng website kinh doanh giầy dép.
• Giới thiệu và trưng bày được các mặt hàng
• Nhanh chóng hiệu quả
• Đảm bảo chính xác, bảo mật cao, ện lợi và dễ dàng s dụng
cho khách hàng.
• Thuận ện cho việc bán và mua hàng.
2. Đối tượng và phạm vi nghiên cứu.
Đối tượng nghiên cu:
▪ Laravel framework.
▪ Tìm hiểu và khảo sát qui trình bán hàng qua mạng để có cơ sở xây
dựng một trang web bán hàng.
Phạm vi nghiên cu: xây dựng một trang web bán lẻ, chuyên bán sản phẩm
sản phẩm giầy dép trong lãnh thổ việt nam
3. Phương pháp nghiên cứu:
❖ Phương pháp thông kê, thu thập thông n, số liệu.
❖ Phương pháp phân ch và tổng hợp tài liệu để xây dựng một website.
❖ Quá trình n học để xây dựng website thương mại điện í.

lOMoARcPSD| 58797173
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………..
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
…………………………………………………………………………………......
Tp.Hồ Chí Minh, ngày ….. tháng ….. năm …..
Giáo viên hướng dẫn
(Ký tên và ghi rõ họ tên)

lOMoARcPSD| 58797173

lOMoARcPSD| 58797173
PHẦN 2. ĐỀ CƯƠNG CHI TIẾT
CHƯƠNG 1: ĐẶT VẤN ĐỀ
1.1 PHP Framework là gì?
PHP là 1 ngôn ng script rất phổ biến hiện nay bởi nhng lý do: linh hoạt, dễ s
dụng, dễ học, ..v…v. nhưng đôi khi việc viết mã PHP, hay bất c ngôn ng (lập trình)
nào khác, có thể trở nên đơn điệu và lủng củng. Đó là lúc PHP Framework có thể giúp
bạn.
PHP Frameworks làm cho sự phát triển của nhng ng dụng web viết bằng ngôn
ng PHP trở nên trôi chảy hơn, bằng cách cung cấp 1 cấu trúc cơ bản để xây dựng
nhng ng dụng đó. Hay nói cách khác, PHP Framework giúp đỡ các bạn thúc đẩy
nhanh chóng quá trình phát triển ng dụng, giúp bạn ết kiệm được thời gian, tăng
sự ổn định cho ng dụng, và giảm thiểu số lần phải viết lại mã cho lập trình viên.
Ngoài ra Framework còn giúp nhng người mới bắt đầu có thể xây dựng các ng
dụng ổn định hơn nhờ việc tương tác chính xác gia các Database, mã (PHP) và giao
diện (HTML) 1 cách riêng biệt. Điều này cho phép bạn dành nhiều thời gian để tạo
ra các ng dụng web, hơn là phí thời gian để viết các đoạn mã lặp lại trong 1 project.
Ý tưởng chung đằng sau cách thc làm việc của 1 PHP Framework được kể đến
là Model View Controller (MVC). MVC là 1 mô hình (kiến trúc) trong lập trình, cho
phép tách biệt các mã nghiệp vụ và giao diện thành các phần riêng biệt, điều này
đồng nghĩa với việc ta có thể chỉnh sa chúng 1 cách riêng lẻ. Trong cụm i MVC thì:
Model (M) có thể hiểu là phần x lý các thao tác về nghiệp vụ ( business logic), View
được hiểu là phần x lý lớp giao diện (presentaon layer), và Controller làm nhiệm
vụ lọc các request đc gọi i user, có chc năng như 1 route: điều chỉnh, phân luồng
các yêu cầu để gọi đúng Model & View thích hợp. Về cơ bản, MVC chia nhỏ quá trình
x lý của 1 ng dụng, vì thế nên bạn có thể làm việc trên ing thành phần riêng lẻ,
trong khi nhng thành phần khác sẽ không bị ảnh hưởng tới. Thực chất, điều này
giúp đỡ bạn lập trình PHP nhanh hơn và ít phc tạp hơn.
1.2 Tại sao nên s dụng PHP Framework?
Có rất nhiều lý do khác nhau để các lập trình viên s dụng PHP Framework, nhưng
1 trong nhng lý do chính vẫn là khả năng giúp các lập trình viền tăng tốc quá trình
phát triển ng dụng. Việc s dụng lại các mã lệnh giống nhau trong nhiều project sẽ
giúp các bạn ết kiệm được thời gian và công sc 1 cách đáng kể. Một Framework
sẽ cung cấp sẵn các module nền tảng cần thiết để xây dựng 1 project, vì thế, các lập
trình viên có thể tận dụng được thời gian để phát triển các ng dụng thực tế, hơn là
mất thời gian để xây dựng lại nền tảng trên mỗi project.
1.3 Tại sao nên s dụng Laravel Framework?
Có hơn 20 Framework mã nguồn mở PHP khác nhau, nhưng trong số đó thì
Laravel Framework là phổ biến nhất, xếp sau là: PhaIcon, Symfony2, CodeIgniter,
Yii,… .
Nó là 1 Framework khá mới mẻ nhưng bù lại nó có "hướng dẫn s dụng" khá đầy
đủ, rõ ràng và dễ hiểu và cùng với cộng đồng phát triển rộng lớn trên toàn thế giới.
Nếu bạn đã ing làm việc với các Framework khác hoặc chỉ là người mới bắt đầu
"chập chng" m hiểu PHP Framework thì việc ếp cận Laravel Framework không

lOMoARcPSD| 58797173
phải là vấn đề khó khăn gì. Ưu điểm của nó là: Autoload theo namespace, Các lệnh
tương tác với cơ sở d liệu cực kỳ ngắn gọn và thân thiện, phân trang trong laravel
cực kỳ đơn giản, việc quản lý layout giờ đây thật sự giản đơn với Laravel, dễ dàng
ch hợp các thư viện của Zend và các gói bundle (giống như moduel) vào project, có
rất nhiều gói bundle đc các đồng đạo trên thế giới build sẵn và share trên github và
còn rất nhiều ưu điểm khác đang đợi các bạn khám phá… .

lOMoARcPSD| 58797173
CHƯƠNG 2:
GIỚI THIỆU VỀ LARAVEL
2.1 Cấu trúc thư mục của Laravel
Một dự án web viết bằng Laravel có cấu trúc thư mục như sau:
Hình 2.1: Thư mục Laravel Framework

lOMoARcPSD| 58797173
Hình 2.3: Chc năng cụ thể của các thư mục con trong app
2.2 Cài đặt Laravel
2.2.1 Cài Composer
Chúng ta sẽ cài đặt Laravel bằng composer nên các bạn cần cài đặt composer
trước, tôi dùng window nên tôi download bản cài đặt composer của window. Bạn có
thể tải composer tại địa chỉ: hp://laravel.com/docs/4.2/installaon
Các bạn download về và cài đặt bình thường, lưu ý ở chỗ chọn php thôi, các
bạn chỉ đường dẫn đến le php.exe trong thư mục php của XAMPP
(xampp/php/php.exe).
2.2.2 Cài Laravel
Bản Laravel mới nhất hiện tại là 4.2 (Tại thời điểm bài viết này), bản này yêu
cầu chạy trên PHP>=5.4, hiện tại tôi đang dùng XAMPP 5.6.3 nên cài được bản mới
nhất của Laravel. Nếu các bạn muốn cài đặt bản mới nhất thì chỉ cần dùng lệnh sau:
composer create-project laravel/laravel tên-thư-mục-laravel-của-bạn Còn
muốn nếu install các bản thấp hơn thì dùng:
composer create-project laravel/laravel tên-thư-mục-laravel-của-bạn 4.0.*
Sau khi cài đặt xong, chúng ta có cấu trúc thư mục Laravel như hình 2.1 phía
trên. Để biết được có cài Laravel thành công hay không thì chúng ta th chạy Laravel
bằng cách mở trình duyệt lên rồi gõ địa chỉ như sau:

lOMoARcPSD| 58797173
hp://localhost/laravel_demo/public/ . Nếu thành công thì sẽ hiển thị hình dưới
đây:
2.3 Cấu hình cơ bản cho ng dụng
Các bạn truy cập vào app/cong/app.php và chỉnh sa lại nhng thông n cơ bản
sau:
+ Chỉnh lại URL,các bạn m tới key url và chỉnh lại cho phù hợp với dự án của
mình nhé:
'url' => 'hp://localhost/kienthuc24h/'
+ Cấu hình key,các bạn m tới dòng có cấu hình key mục đích của lệnh này là tăng
nh bảo mật của nhng cookie và session cho website. Hoặc các bạn có thể s dụng
lệnh CMD bằng cách chỉ đường dẫn đến thư mục làm việc của bạn ở đây mình s
dụng thư mục kienthuc24h và chạy dòng lệnh sau: php arsan key:generate
2.4 Chạy ng dụng đầu ên với Laravel
- Các bạn truy cập vào le app/route.php và thêm nội dung sao vào cuối le:
Route::get(‘/dang-nhap’,funcon(){
echo ‘Đây là trang đăng nhập’;
});
- Và các bạn th gõ lên trình duyệt đường link:
hp://localhost/kienthuc24h/public/dang-nhap các bạn sẽ thấy được kết quả với
nội dung sau:
Đây là trang đăng nhập
2.5 Route trong Laravel Framework
Mục đích của router là định tuyến đến nhng controller cụ thể nào i phía
request của người s dụng. Đối với nhng Framework khác thì khi các bạn muốn
thực hiện 1 công việc nào đó thường chúng ta cần xây dựng 1 controller để x lý phải
không nào, nhưng trong Laravel thì các bạn hoàn toàn có thể x lý d liệu ngay trong
phần Router. Đây chính là điểm mạnh cũng như điểm khác biệt lớn của Laravel
Framework đối với các Framework khác.
2.5.1 Basic Roung
- Các định tuyến trong Laravel đều được viết trong
app/route.php. Cú pháp đơn giản nhất của 1 định tuyến đó là:
Route::method(‘URI’,’Funcon call back’)
Hình 2.4: Cài đặt Laravel thành công

lOMoARcPSD| 58797173
Trong đó thì:
+ URI là dạng link trên url.
+ Funcon callback: Hàm sẽ gọi tới link URI phía trên được chạy, đây chính là
nơi các bạn có thể x lý d liệu.
+ Method chính là các dạng phương thc cơ bản: post, get, put, delete, any.
- POST Route: Các thao tác lấy i form như thêm d liệu.
- GET Route: Dành cho các thao tác truy cập thông thường tương
đương với request cơ bản trong PHP. Ví dụ chạy 1 link trên url.
- PUT Route: Dành cho thao tác lấy i form nhưng là cập nhật d
liệu.
- DELETE Route: Dành cho thao tác hành động xóa d liệu.
- ANY Route: là sự tổng hợp các thao tác ở trên.
Trong đó thì 2 dạng POST và GET sẽ được s dụng nhiều nhất.
Ví dụ:
Các bạn mở le app/route.php và viết dòng code sau:
Route::get(‘/san-pham’, funcon(){
echo ‘Trang sản phẩm’;
});
Tiếp theo truy cập vào đường link url với đường dẫn localhost/kienthuc24h/s
an-pham (Trong đó thì kienthuc24h chính là thư mục dự án). Khi các bạn chạy link
này lập íc trong Route sẽ kiểm tra và gọi đúng tới hàm callback. Sau khi chạy trang
này các bạn sẽ nhận được thông báo như ý muốn.
- Ngoài ra các bạn còn có thể tùy chỉnh rất nhiều trong phần
Route này theo cú pháp:
Route::method(‘Tên định danh’,’Tham số’); Ví
dụ:
Route::get(“san-pham”,”ProductController@list”);
Với ví dụ trên có nghĩa là khi chúng ta chạy link san-pham lúc này bộ điều
hướng sẽ gọi tới controller là ProducController và phương thc (acon) là list.
2.5.2 Route Parameters
- Trong trường hợp các bạn muốn gi kèm theo tham số cho bộ định
tuyến thì chỉ cần khai báo theo dạng{Tên tham số} và trong hàm callback chúng ta
coi nó như tham số trong hàm bình thường.
Ví dụ:
Route::get(‘/san-pham/{name}/{id}’, funcon($name,$id)
{ echo ‘Bạn đang xem sản phẩm’.$name.’có ID = ’.&id;
});
Tiếp theo bạn truy cập vào đường link
localhost/kienthuc24h/sanpham/nokia520/1 và kết quả sẽ là:
Bạn đang xem sản phẩm nokia520 có ID = 1

lOMoARcPSD| 58797173
- Ngoài ra các bạn hoàn toàn có thể kiểm tra d liệu của tham số truyền
vào bằng cách s dụng thêm phương thc where().
Ví dụ:
Route::get(‘/san-pham/{name}/{id}’, funcon($name,$id){ echo
‘Bạn đang xem sản phẩm’.$name.’có ID = ’.&id;
})->where(array(‘name’=>’[a-z]+’,’id’=>’[0-9]+’));
Ở trường hợp trên ta xét với điều kiện kiểm tra sẽ là sản phẩm(name) sẽ là
các ký tự thường i a-z còn id sẽ là các số tự nhiên i 0-9.
2.5.3 Route Filters
- Đây chính là phần bộ lọc định tuyến, nó cho phép chúng ta có
thể kiểm tra trước khi cập nhật vào đường dẫn đó (URI). Ứng dụng trong thực
tế là kiểm tra trạng thái đăng nhập trước khi cho phép truy cập vào 1 trang
nào đó.
- Filter chia ra 2 loại là before và aer.
+ Before: Nghĩa là request trước khi tới roung.
+ Aer: Nghĩa là request sau khi tới roung.
Trên thực tế thì Before thường được s dụng nhiều hơn.
- Cú pháp cơ bản:
Route::lter(“tên lter”, funcon(){
// code xử lý
});
Ví dụ:

lOMoARcPSD| 58797173
Route:: lter(“checklogin”, funcon(){ if(session::get(‘login’)!
=1){ return Redirect::to(“/dang-nhap”); }
});
Đoạn code trên mình xây dựng 1Filter có tên là checklogin đang thực hiện
kiểm tra xem biến session login có bằng 1, ý định của mình ở đây là kiểm tra xem đã
đăng nhập chưa. Nếu chưa đăng nhập thì lập íc chuyển về trang đăng nhập.
Tiếp theo ta có đoạn code:
Route::get(‘/them-san-pham’, array(“before”=>”checklogin”,”uses”=>
”ProductController@store”));
Với đoạn code trên mình đã thêm vào khóa before chỉ tới checklogin. Chính
là lter ta đã thiết lập trước đó, và đẩy nó sang controller ProductController với
acon là store dựa vào khóa uses.
- Như vậy, khi các bạn truy cập vào link them-san-pham thì lúc này nó
sẽ kiểm tra Filter checklogin trước.
- Với bất kỳ link nào đó mà bạn muốn kiểm tra đăng nhập thì chỉ cần s
dụng “before”=>”checklogin” là được.
- Filter trong Laravel Framework còn cho phép chúng ta truyền giá trị
vào dựa vào cú pháp sau:
Route::lter(‘Tên lter’, funcon($route, $request,$value){
// code xử lý, kiểm tra dữ liệu
});
+ Như các bạn thấy tham số th 3 $value chính là giá trị mà chúng ta sẽ truyền
vào, ví dụ:
Route::lter(“checkId”, funcon($route, $request,$value){
// Xử lý dữ liệu if($value<=0)
{ echo ‘Id khong hop le’;
}
});
Route::get(‘/check-id’,array(“before”=>”checkId:-1”,”uses”=>”
DemoController@checkid“));
+ Như vậy khi các bạn chạy link check-id lúc này sẽ gọi tới Filter checkId để
kiểm tra, và giá trị mình gi sang bên Filter đó chính là -1(checkId:-1).
- Qua nhng ví dụ này các bạn thấy được ý nghĩa và sc mạnh của lter trong
thực tế phải không nào. Với lter ta có thể tối giản code ở mc cao nhất và tái s
dụng vô cùng đơn giản.

lOMoARcPSD| 58797173
2.5.4 Name Route
- Đặt tên cho các Route nhằm s dụng linh hoạt cho ng dụng. Dễ dàng lấy
được thông n của Route thông qua tên này.
Ví dụ:
Route::get(‘/san-pham/{name}/{id}’, array(‘as’=>’product’,’uses’=>Produ
ctController@view));
$url= URL::route(“product”,array(‘nokia520’,’1’));
echo “<a href=’$url’>Chi ết sản phẩm</a>”; + as: Là
tên của route (product).
+ uses: Route này sẽ s dụng controller (ProductController) nào và acon
(view) nào.
+ Thư viện URL, s dụng phương thc route với cú pháp sau:
URL::route(“tên route”, array(‘chứa đối số’));
Sau khi chạy đoạn code trên chúng ta sẽ có $url=/san-pham/nokia520/1.
- Tiếp đến ta xây dựng 1 controller với nội dung sau:
<?php
class ProductController extends
BaseController{ public funcon view($name, $id)
{ echo ‘Bạn đang xem sản phẩm’.$name.’có ID = ’.$id; }
} và kết quả sẽ hiển thị
ra như sau:
Bạn đang xem sản phẩm nokia520 có ID = 1
2.5.5 Route Groups
- Route Groups sẽ giúp chúng ta có thể nhóm các Route mà cần thông qua bộ
lọc định tuyến nào đó (Filter). Như với ví dụ trên chúng ta có Filter là checklogin, giả
s chúng ta có rất nhiều trang cần s dụng bộ lọc kiểm tra đăng nhập này, không lẻ
chúng ta phải viết tất cả các khóa before. Nhưng khi s dụng Route Groups các bạn
chỉ cần viết 1 lần khóa before cho nhóm đó.
Ví dụ:
Route::group(array(“before”=>”checklogin”), funcon(){
Route::get(‘/them-san-pham’,array(“uses”=>”ProductControl
ler@store”));
Route::get(‘/cap-nhat-san-pham’,array(“uses”=>”Product
Controller@update”));

lOMoARcPSD| 58797173
Route::get(‘/them-danh-muc’,array(“uses”=>”CatalogControl
ler@store”));
Route::get(‘/cap-nhat-danh-muc’,array(“uses”=>”CatalogControl
ler@update”));
});
+ Như vậy là khi các bạn truy cập vào các link ở trên thì sẽ được thông qua
Filter checklogin kiểm trước.
2.5.6 Route Prexing
- Gồm 1 số các định tuyến mà đằng trước nó có ền tố.
Ví dụ:
localhost/kienthuc24h/admin/them-san-pham
localhost/kienthuc24h/admin/cap-nhat-san-pham
localhost/kienthuc24h/admin/them-danh-muc
localhost/kienthuc24h/admin/cap-nhat-danh-muc
- Với các đường link trên thì các bạn thấy trước nó đều có ền tố (Prex)
là admin phải không nào. Lúc này chúng ta hoàn toàn có thể cho nó vào 1 nhóm
có ền tố admin và thực hiện kiểm tra.
Ví dụ:
Route::group(array(“prex”=>”admin”,”before”=>”checklogin”), funcon(){ //
phần sử lý nằm ở đây.
});
Với ví dụ trên thì mình đang nhóm tất cả các link có ền tố là admin, và trước
khi truy cập vào nhng link này mình sẽ thực hiện gọi tới Filter checklogin để kiểm
tra xem đã đăng nhập chưa.
2.6 View trong Laravel Framework
- Như đã đề cập ở trên thì thư mục view dùng để cha các le mẫu
như html để tương tác với người s dụng nằm trong thư mục
(app/view).
- Để s dụng view ta có thể s dụng như sau: return
View::make("Tên",Đối số nếu có);
Ví dụ trong app/route.php ta có đường dẫn sau:
Route::get("name",funcon(){ return View::make("hoten"); // gọi le view
có tên là: app/views/hoten.php });
<!-- View stored in app/views/hoten.php -->

lOMoARcPSD| 58797173
<html>
<body>
<h1>Hello, <?php echo $name; ?></h1>
</body>
</html>
Sau đó ta tạo le app/views/hoten.php với nội dung là ” Tên tôi là Tính” . khi chạy
th đường link hp://localhost/kienthuc24h/public/name thì ta sẽ thấy kết quả.
Vậy nếu ta muốn truyền đối số cho view thì sao. Bạn có nhiều cách để làm điều
đó.
Cách 1: S dụng đối số
Route::get("name2",funcon(){
$data['name']= "Bui Van Tinh"; return
View::make("hoten",$data);
});
Với cách này bạn đang truyền sang view hoten.php một đối số có tên là $name.
Do vậy tại hoten.php bạn có thể dùng nó như sau:
echo "Họ tên của bạn là: $name";
Cách 2: Truyền qua 1 phương thc tên with().
Route::get("name3",funcon(){ return
View::make('hoten')->with('name', 'Steve'); });
Và ở view hoten.php ta hoàn toàn có thể s dụng $name dễ dàng. Nhưng với
cách này, bạn sẽ rất khó để truyền nhiều giá trị cho view.
Cách 3: S dụng hàm compact() trong PHP.
Route::get("name4",funcon(){
$name = "Framgia"; return
View::make("hoten",compact("name"));
});
Và ở view abcd.php bạn chỉ việc s dụng $id một cách dễ dàng.
Trong trường hợp bạn muốn thao đặt view trong thực mục cho gọn gàng. Bạn có
thể s dụng phân cách, thay vì là dấu / thì bạn sẽ dùng dấu “.”.
Route::get("name",funcon(){ return
View::make("demo.hoten");
});

lOMoARcPSD| 58797173
2.7 Controller trong Laravel Framework
- Như các bạn được biết trong Laravel cho phép chúng ta có thể x lý d liệu ngay
bên trong Route nhưng đối với nhng thao tác phc tạp và dài chúng ta lên x lý
trong Controller.Có như vậy thì ng dụng của bạn mới trở nên linh hoạt và dễ mở
rộng sau này.
2.7.1 Khai báo Controller trong Laravel Framework:
– Để tạo 1 controller các bạn cần vào thư mục app/controller với các quy tắc
sau:
1. Tên le trùng với tên Class.
2. Kế tha i lớp BaseController.
Ví dụ, tạo 1 le HocphpController.php với nội dung:
<?php
class HocphpController extends BaseController
{ public funcon test(){ echo 'Tim hieu ve Controller trong
Laravel tai kienthuc24h'; }
}
2.7.2 Chạy Controller theo phương thc Route::get
- Trước ên các bạn truy cập vào le routes.php thêm nội dung sau:
Route::get('/controller-test',
'HocphpController@test');
Với đoạn code cấu hình trên ta đã khai báo 1 link controller-test sẽ gọi tới
controller HocphpController và phương thc(acon) là test.Như vậy khi các chạy link
localhost/kienthuc24h/public/controller-test sẽ hiển thị nội dung như ý muốn: Tim
hieu ve Controller trong Laravel tai kienthuc24
Chúng ta sẽ đi thêm vào 1 ví dụ na về việc truyền tham số vào controller thế
nào nhé.Trong HocphpController tạo phương thc sau:
<?php
class HocphpController extends BaseController
{ public funcon view($tle, $id)
{ echo 'Bạn đang xem bài viết '.$tle.' có ID là :'.$id; }
}
Và le routes.php ta cấu hình như sau:
Route::get('/bai-viet-{tle}/{id}', 'HocphpController@view');
Và khi các bạn chạy link localhost/laravel/public/bai-viet-hocphp/1 sẽ nhận
được kết quả:
Bạn đang xem bài viết hocphp có ID là :1
Như vậy các bạn thấy chúng ta đã gi thành công 2 biến đó chính là $tle =
hocphp và $id = 1.

lOMoARcPSD| 58797173
2.7.3 Implicit Controllers – S dụng phương thc Route::controller
Như các bạn thấy trong 1 controller chúng ta thường có khá nhiều các phương
thc(acon) phải không nào,như vậy chả lẽ mỗi lần muốn chạy 1 acon nào đó lại
phải vào le routes.php để thêm cấu hình sao?như vậy cũng thật bất ện và khó
quản lý phải không nào.Trong Larvel còn cho phép chúng ta có thể chạy các phương
thc trong controller 1 cách tự động dựa vào tên acon đó.
+ Trước ên các bạn vào le routes.php thêm đoạn code cấu hình như sau:
Route::controller('hocphp', 'HocphpController');
Với phương thc Route::controller cho phép chúng ta s dụng 2 đối số, đối
số th nhất chính là định dạnh URI,đối số th 2 chính là tên lớp controller.Trong ví
dụ trên mình đã định nghĩa 1 URI có tên hocphp đại diện cho lớp controller
HocphpController.
+ Tiếp theo chúng ta cần chỉnh sa nội dung le controller như sau:
<?php
class HocphpController extends BaseController
{ public funcon getTest(){ echo 'Tim hieu ve Controller trong
Laravel tai kienthuc24h';
}
}
Như các bạn thấy nếu chúng ta cấu hình theo phương thc Route::controller
trong routes thì trong controller chúng ta cũng phải viết đúng theo các quy tắc trong
Laravel như sau:
+ Trước các acon phải có các ền tố là các giá trị get, post, any…các giá trị
này các bạn có thể xem lại về Route phía trên và tên acon phải viết hoa ch cái đầu.
+ Tên phương thc phân biệt ch hoa và ch thường.
+ Khi muốn chạy acon thì chạy theo dạng link URI/tên acon viết thường.
Và lúc này chúng ta muốn chạy acon test thì sẽ chạy đường link sau: locaho
st/kienthuc24h/public/hocphp/test, thì sẽ được kết quả như mong đợi.
2.7.4 RESTful Resource Controllers – S dụng phương thc
Route::resource
- Để lập một controller qua câu lệnh command line, thì ta thực hiện: php
arsan controller:make HocphpController
- Bây giờ bạn có thể x lý một resourceful route tới controller:
Route::resource('hocphp', 'HocphpController');
Việc lập route đơn này sẽ x lý nhiều route của RESTful acons trên nguồn
hocphp.
Dưới đây là bảng ánh xạ gia route và acon:
Bấm Tải xuống để xem toàn bộ.
Preview text:
Hello, <?php echo $name; ?>