Tải bản đầy đủ (.doc) (70 trang)

Khóa Luận về web

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 (2.73 MB, 70 trang )

-0-


MỤC LỤC

DANH MỤC HÌNH VẼ.........................................................................................3
A. PHẦN MỞ ĐẦU................................................................................................4
1. Lý do chọn đề tài...........................................................................................4
2. Mục tiêu của đề tài........................................................................................4
3. Đối tượng và phạm vi nghiên cứu.................................................................5
4. Nội dung và phương pháp nghiên cứu..........................................................5
5. Ý nghĩa khoa học và thực tiễn của đề tài......................................................5
6. Bố cục của đề tài...........................................................................................5
B. NỘI DUNG........................................................................................................6
Chương 1: TỔNG QUAN VỀ FRAMEWORK LARAVEL...........................6
1.1. Giới thiệu Frameword Laravel...................................................................6
1.1.1. Khái niệm..........................................................................................6
1.1.2. Lịch sử phát triển của Laravel..........................................................6
1.1.3. Ưu điểm của Framework Laravel.....................................................6
1.2. Cài đặt Frameword Laravel.......................................................................7
1.2.1. Yêu cầu hệ thống...............................................................................7
1.2.2. Cài đặt Frameword Laravel..............................................................7
1.3. Kết luận chương 1......................................................................................8
Chương 2: PHÁT TRIỂN WEBSITE TRÊN NỀN TẢNG
FRAMEWORK LARAVEL...........................................................9
2.1. Tổng quan về mô hình MVC.....................................................................9
2.2. Mô hình MVC trong Framework Laravel..................................................9
2.2.1. Controller..........................................................................................9
2.2.2. View...................................................................................................9
2.3.3. Model................................................................................................9
2.3. Framework Laravel trong xây dựng website với mô hình MVC.............10


2.3.1. Cách sử dụng Route trong Laravel.................................................10
2.3.2. Cách sử dụng View, Model và Controller trong Laravel.................11
2.3.3. Sử dụng Blade Templates engine trong laravel...............................13
2.3.4. Làm việc với database bằng lệnh trong Laravel.............................15
2.3.5. Tạo mối quan hệ Relationships trong laravel.................................24
-1-


2.4. Kết luận chương 2....................................................................................33
Chương 3: XÂY DỰNG HỆ THỐNG QUẢN LÝ DỊCH VỤ DU LỊCH
TRỰC TUYẾN...............................................................................34
3.1. Phát biểu bài toán.....................................................................................34
3.2. Phân tích và thiết kế hệ thống..................................................................34
3.2.1. Các tác nhân của hệ thống..............................................................34
3.2.2. Ca sử dụng của hệ thống.................................................................34
3.2.3 Biểu đồ ca sử dụng của hệ thống.....................................................35
3.2.4. Đặc tả ca sử dụng...........................................................................36
3.2.5. Mô hình cầu trúc hệ thống..............................................................39
3.2.6. Mô hình hành vi của hệ thống.........................................................43
3.2.7. Thiết kế............................................................................................49
3.2.8. Thiết kế kiến trúc vật lý hệ thống:...................................................61
3.3. Chương trình thử nghiệm.........................................................................62
3.4. Kết luận chương 3....................................................................................66
C. KẾT LUẬN VÀ KIẾN NGHỊ........................................................................67

-2-


DANH MỤC HÌNH VẼ
Hình 1.1: Cài đặt Laravel.........................................................................................8

Hình 1.2: Giao diện Laravel sau khi cài đặt............................................................9
Hình 2.1: Mô hình MVC........................................................................................10
Hình 3.1: Ca sử dụng cho ban quản trị..................................................................35
Hình 3.2: Ca sử dụng cho khách hàng...................................................................36
Hình 3.3: Biểu đồ tuần tự cho ca sử dụng đăng nhập............................................44
Hình 3.4: Biểu đồ tuần tự cho ca sử dụng quản lý tour du lịch.............................45
Hình 3.5: Biểu đồ tuần tự cho ca sử dụng quản lý khách sạn................................46
Hình 3.6: Biểu đồ tuần tự cho ca sử dụng quản lý phòng......................................47
Hình 3.7: Phương thức kiểm tra tài khoản.............................................................48
Hình 3.8: Phương thức thêm tour du lịch..............................................................48
Hình 3.9: phương thức thêm khách sạn.................................................................49
Hình 3.10: Phương thức thêm phòng khách sạn....................................................49
Hình 3.11: Cơ sở dữ liệu........................................................................................50
Hình 3.12: Biểu đồ định hướng cửa sổ cho ca sử dụng đăng nhập.......................58
Hình 3.13: Biểu đồ định hướng cửa sổ cho ca sử dụng đăng ký tài khoản...........59
Hình 3.14: Biểu đồ định hướng cho ca sử dụng quản lý tour du lịch....................60
Hình 3.15: Biểu đồ định hướng cho ca sử dụng quản lý khách sạn.......................61
Hình 3.16: Biểu đồ định hướng cho ca sử dụng quản lý phòng khách sạn............62
Hình 3.17: Biểu đồ thành phần..............................................................................63
Hình 3.18: trang đăng nhập vào hệ thống..............................................................64
Hình 3.19: trang chủ của hệ thống.........................................................................64
Hình 3.20: danh sách các tài khoản quản trị..........................................................65
Hình 3.21: Thêm mới tài khoản quản trị................................................................65
Hình 3.22: Danh sách tour du lịch.........................................................................66
Hình 3.23: Thêm tour du lịch.................................................................................66
Hình 3.24: Danh sách khách sạn............................................................................67
Hình 3.25: Thêm khách sạn...................................................................................67
Hình 3.25: danh sách phòng..................................................................................68
Hình 3.26: Thêm phòng khách sạn........................................................................68
-3-



A. PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Trong sự phát triển mạnh mẽ của khoa học công nghệ thế giới, có thể nói
rằng ngành công nghệ thông tin phát triển với tốc độ nhanh nhất và ngày càng thể
hiện được vai trò to lớn, hết sức quan trọng đối với toàn bộ đời sống con người.
Hầu hết các lĩnh vực trong xã hội đều ứng dụng công nghệ thông tin, nhiều phần
mềm đã mang lại hiệu quả không thể phụ nhận. Song thực tiễn luôn đặt ra những
yêu cầu mới đòi hỏi ngành công nghệ thông tin không ngừng phát triển để thỏa
mãn và đáp ứng những thay đổi của cuộc sống. Ngày nay, ứng dụng công nghệ
thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính
quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các công
ty… nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh
mẽ. Việc xây dựng các trang web để phục vụ cho các nhu cầu riêng của các tổ
chức, công ty thậm chí các cá nhân ngày nay không lấy gì làm xa lạ.
Thông qua những website này, thông tin về họ cũng như các công văn,
thông báo, quyết định của chính phủ hay các sản phẩm, dịch vụ mới của công ty
sẽ đến với những người quan tâm, đến với khách hàng của họ một cách nhanh
chóng kịp thời, tránh những phiền hà mà phương thức giao tiếp truyền thống
thường gặp phải. Hoạt động của một công ty du lịch có quy mô khá lớn sẽ càng
được tăng cường và mở rộng nếu xây dựng được một website có khả năng giới
thiệu được công ty và cho phép quản lý các tour du lịch và đặt phòng khách sạn
một cách nhanh chóng và chính xác nhất. Bắt nguồn với ý tưởng này, cùng với
những gợi ý của thầy Đỗ Quang Khôi, tôi đã chọn đề tài “Tìm hiểu Framework
Laravel 5.x và ứng dụng phát triển hệ thống Quản lý dịch vụ du lịch trực
truyến” làm khóa luận tốt nghiệp.
2. Mục tiêu của đề tài
- Nắm vững những kiến thức cơ bản cũng như mô hình MVC trong Laravel
Framework

-4-


- Áp dụng Framework Laravel để viết ứng dụng phát triển hệ thống Quản lý
dịch vụ du lịch trực truyến
3. Đối tượng và phạm vi nghiên cứu
- Kiến thức về MVC và Frameword Laravel.
- Ứng dụng Frameword Laravel vào xây dựng 1 hệ thống.
4. Nội dung và phương pháp nghiên cứu
- Tìm đọc tài liệu trên trang chủ laravel.com, giáo trình, luận văn, bài báo,
thông tin trên mạng.
- Phân tích, tổng hợp tài liệu.
- Thống kê, phân tích dữ liệu.
5. Ý nghĩa khoa học và thực tiễn của đề tài
Framework Laravel đã được một số tác giả tìm hiểu và nghiên cứu trước đó.
Phần lớn các tác giả đều cho thấy một cách tổng quan về nội dung lý thuyết
của Framework Laravel đồng thời cũng xây dựng một hệ thống phù hợp với môi
trường và bản thân tác giả.
Với những ưu điểm của mình thì lập trình PHP và Framework Laravel đã
được sử dụng trong nhiều hệ thống lớn tuy nhiên nó còn khá mới mẻ đối với sinh
viên trường Đại học Quảng Nam.
6. Bố cục của đề tài
A. MỞ ĐẦU
B. NỘI DUNG
Chương 1: Tổng quan về Framework Laravel
Chương 2: Phát triển website trên nền tảng Framework Laravel
Chương 3: Xây dựng hệ thống quản lý dịch vụ du lịch trực tuyến
C. KẾT LUẬN VÀ KIẾN NGHỊ

-5-



B. NỘI DUNG
Chương 1: TỔNG QUAN VỀ FRAMEWORK LARAVEL
1.1. Giới thiệu Frameword Laravel
1.1.1. Khái niệm
Laravel là một Framework dùng để xây dựng web application, nó được
thiết kế dựa trên mô hình MVC (Model, View, Controller).
1.1.2. Lịch sử phát triển của Laravel
Laravel là một php framework khá mới, phiên bản đầu tiên (Laravel1) được
phát hành vào tháng 6/2011, tiếp sau đó vào tháng 9/2011 thì Laravel 2 được phát
hành với nhiều cải tiến đáng kể như hỗ trợ Inversion of control (Ioc), hệ thống
template Balde.
Laravel 3 được phát hành vào tháng 2/2012 với một tấn tính năng bao gồm
giao diện dòng lệnh artisan (CLI) 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.
Laravel 4 được phát hành vào tháng 5/2013 lần này 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.
Laravel 5 được phát hành vào tháng 2/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.
1.1.3. Ưu điểm của Framework Laravel
Laravel được chú ý điến với nhiều ưu điểm “nhẹ mà hay” như Eloquent
ORM, localization, models and relationship, routing, caching, sessions, view …
Laravel là một framework ra đời khá trễ nên nó được thừa hưởng tất cả các
thế mạnh và ưu điểm của các framework khác.
Phần routing của laravel rất mạnh mẽ.
Sử dụng mô hình ORM để tương tác với cở sở dữ liệu rất mạnh mẽ mà
không cần phải tương tác đến trình quản lý của mysql.
-6-



Dễ dàng tích hợp các thư viện khác vào dự án thông qua composer.
1.2. Cài đặt Frameword Laravel
1.2.1. Yêu cầu hệ thống
Trước tiên khi cài đặt laravel, cần phải đảm bảo rằng Apache, PHP, mysql
đã được cài đặt, đối với từng phiên bản của laravel thì yêu cầu hệ thống cần phải
đảm bảo được các yêu cầu sau:
+ Sử dụng phiên bản PHP phải từ 5.5.9 trở lên.
+ Cần phải mở OpenSSL PHP Extension (trong file php.env)
+ Cần phải mở PDO PHP Extension (trong file php.env)
1.2.2. Cài đặt Frameword Laravel
Các bước cài đặt laravel:
+ Bước 1: mở terminal lên và di chuyển vào thư mục chứa Apache.
+ Bước 2: tiếp theo gõ lệnh sau vào comment line
composer create-project laravel/laravel laravel5 '5.2.*'
Giải thích:
laravel/laravel: là tên giới thiệu của project.
laravel5: là tên project (tên thư mục) của mình.
5.2.* : là version của laravel nếu không có thì mặc định sẽ dowload về bản
mới nhất.

-7-


Hình 1.1: Cài đặt Laravel.
Bước 3: sau khi dowload xong ở comment line bạn di chuyển vào thử mục
dự án vừa tạo bằng lệnh CD rồi gõ lệnh sau: php artisan serve
Bước 4: mở trình duyệt lên và gõ trên thanh địa chỉ http://localhost:8000
nếu xuất hiện như hình bên dưới là đã cài đặt thành công laravel.


Hình 1.2: Giao diện Laravel sau khi cài đặt.
1.3. Kết luận chương 1
Chương 1 giới thiệu tổng quát về Framework Laravel 5.* , cài đặt laravel
và chạy thử chương trình đầu tiên.

-8-


Chương 2: PHÁT TRIỂN WEBSITE
TRÊN NỀN TẢNG FRAMEWORK LARAVEL
2.1. Tổng quan về mô hình MVC
Mô hình MVC (Models, View, Controller) là một kiến trúc phần mền hay
mô hình thiết kế được sử dụng trong kỹ thuật phần mền, nó giúp cho các lập trình
viên tách ứng dụng của họ ra 3 thành phần khác nhau Models, View, Controller.
Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.
2.2. Mô hình MVC trong Framework Laravel

Hình 2.1: Mô hình MVC

-9-


2.2.1. Controller
Giữ nhiệm vụ nhận, điều hướng các yêu cầu từ người dùng và gọi đúng
những phương thức mà người dùng gửi lên để xử lý chúng.
2.2.2. View
View có nhiệm vụ tiếp nhận dữ liệu từ controller gửi sang và hiển thị các
thông tin đó sang các đoạn mã HTML.
2.3.3. Model

Có nhiệm vụ thao tác đến cơ sở dữ liệu, nghĩa là nó sẽ chứa tất cả các hàm,
các phương thức truy vấn trực tiếp với dữ liệu và controller sẽ thông qua các hàm,
phương thức để lấy dữ liểu trả về cho View.
2.3. Framework Laravel trong xây dựng website với mô hình MVC
2.3.1. Cách sử dụng Route trong Laravel
Mục đích của việc sử dụng router là định tuyến đến những controller cụ thể
từ phía request của người sử dụng.
Một số cách khai báo Route:
 Route basic (điều khiển căn bản):
Các định tuyến trong Laravel framework được viết trong file
app/routes.php ta khai báo như sau: Route::method('URI',
'FUNCTION CALLBACK');
Giải thích:
URI: là dạng link trên url.
FUNCTION CALLBACK: là hàm sẽ được gọi khi link URI
phía trên được chạy, đậy là nơi có thể xử lý dữ liệu.
method: là các phương thức như GET, POST, PUT,
DELETE...
VD:
Route::get('demo', function (){
return “demo project laravel”;
- 10 -


});
 Route parameters (sử dụng tham số trong bộ định tuyến):
Trong trường hợp muốn gửi kèm các tham số cho bộ định tuyến thì
ta chỉ cần khai báo theo dạng {tên tham số}
VD:
Route::get('parameters-demo/{name}/{age}',function($name,$age)

{
echo “xin chào, tôi là:”. $name. “năm nay tôi”.$age.”tuổi”;
});
 Route filters(Bộ lọc định tuyến):
Đây chính là bộ lọc định tuyến, nó có thể cho phép chúng ta kiểm tra
trước khi truy cập vào đường dẫn đó.
Filters có hai loại là before và after. Before nghĩa là kiểm tra trước
khi request chạy vào route đó, ngược lại after sẽ kiểm tra khi request
chạy vào route đó.
Cú pháp để khai báo filters:
Route::filter('tên filter', function (){
//code xử lý
});
 Route groups (gộp nhóm bộ định tuyến):
Route groups sẽ giúp chúng ta nhóm các route lại một cách dễ dàng
với cách khai báo như sau:
Route::group(['prefix' => 'admin', function(){
Route::get('user', function (){
echo “đây là page user”;
});
Route::get('products', function (){
echo “đây là page products”;
});
}]);
- 11 -


2.3.2. Cách sử dụng View, Model và Controller trong Laravel
2.3.2.1. View
Trong framework Laravel để tạo view ta vào thư mục resources/view

2.3.2.2. Model
Trong các PHP Framework khi nói đến Model thì mặc định dường như nó sẽ
gắng liền thao tác với cơ sở dữ liệu. Trong Framework Laravel thì nó hỗ trợ cho
chúng ta tạo model đơn giản bằng lệnh artisan là : php artisan make:model
Models/name
+ trong đó name là tên model mình cần tạo.
+ Sau khi lệnh artisan được chạy xong thì ta vào thư mục app/Http/Models
và mở file model vừa tạo lên và làm việc.
VD:
class Product extends Eloquent {
protected $table='products';
protected $fillable= ['name', 'price', ...];
}
?>
Giải thích:
$table : là tên của bảng trong database.
$fillable : là tên các thuộc tính của bảng trong database.
2.3.2.3. Controller
Trong laravel framework có hỗ trợ cho chúng ta tạo controller bằng lệnh
artisan một cách đơn giản như sau: php artisan make:controller NameController.
+ trong đó NameController là tên controller mà mình muốn tạo.
VD: php artisan make:controller ProductController
Sau khi chạy xong lệnh ta ta vào thư mục app/Http/controllers và mở file
ProductController lênh và làm việc.
- 12 -


class ProductController extends BaseController {

public function test(){
return “đây là controller”;
}
}
?>
Để có thể gọi được controller với function test trong laravel thì ta phải truy
cập đến file routes trong thư mục app/routes.php và thêm nội dung sau:
Route::get('test-controller', 'ProductController@test');
2.3.3. Sử dụng Blade Templates engine trong laravel
Templates engine có tác dụng giúp sạch đi những 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, Xitemplate...
Templates engine này được tích hợp sẵn bên trong laravel và tất cả các blade
template engine đều có phần mở rộng là .blade.php .
Để tạo template engine ta vào thư mục resource/view vào tạo file với đuôi
mở rộng là .blade.php .
Các cú pháp sử dụng trong blade template engine:
+ sử dụng cặp dấu {{ }} hoặc {!! !!} thay cho từ khóa echo trong php
VD:
$name='Nguyễn Văn A';
echo $name;
?>
Thay vì viết vậy balde template hỗ trợ câu lệnh ngắn gọn hơn cho chúng ta:
{{ $name }}
+ Sử dụng vòng lặp đ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 và kết thúc bằng @end + tên hàm
VD:
@php $i=5; @endphp
- 13 -



@if($i<6)
biến i nhỏ hơn 6;
@else
biến i lớn hơn 6
@endif
@for($j=0; $j<=$i; $j++)
giá trị của j là: {{ $j }}
@endfor
+ chèn sub-view trong blade template engine: để chèn sub-view ta dùng cú
pháp: @include($uri_view_name).
Giải thích:
$uri_view_name: là đường dẫn tới phần cần chèn sub-view.
+ Mở rộng và ghi đè trong blade template engine: đây là phần khá quan trọng
và rất hay để có thể hiểu rõ hơn về phần này ta có thể xem ví dụ sau đây:
VD:
Tạo file resource/view/layout/master.blade.php
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<title>
@yield('title')
</title>
</head>
<body>
<div class="container">
@yield('content')
</div>

</body>
</html>
- 14 -


Tiếp theo tạo file resource/view/home.blade.php
@extends('layout.master')
@section('title', 'đây là title của trang home')
@section('content')

đây là nội dung content ở page home


@stop

Khi chạy trang home lên trình duyệt kết quả sẽ là:
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<title>đây là title của trang home</title>
</head>
<body>
<div class="container">

đây là nội dung content ở page home.


</div>
</body>
</html>
Như vậy ở file home.blade.php dùng @extends('layout.master') để chọn file
master.blade.php trong folder layout sau đó dùng @section('content') và
@section('title') để thiết lập nội dung bên trong đó cho vị trí @yield('content') và
@yield('title').
2.3.4. Làm việc với database bằng lệnh trong Laravel

Thông thường khi muốn tạo ra một cơ sở dữ liệu và các bảng dữ liệu thì phải
vào trong hệ quản trị cơ sở dữ liệu phpMyadmin để tạo bằng phương pháp thủ
công, nhưng đối với cách này thì làm mất khá nhiều thời gian trong việc tạo cơ sở
dữ liệu hay chỉnh sửa cơ sở dữ liệu. Chính vì vậy laravel cung cấp cho chúng ta
- 15 -


một giải pháp rất tuyệt vời đó chính là Migrations và Schema Buider để thực hiện
thiết kế và quản lý cơ sở dữ liệu.
2.3.4.1. Sử dụng Query Builder trong laravel
Query Buider trong laravel giúp chúng ta trong việc thao tác đến cơ sở dữ
liệu một cách thuận lợi hơn , với những câu lệnh truy vấn từ cơ sở dữ liệu . Nó
thường được sử dụng để thực hiện hầu hết những thao tác về cơ sở dữ liệu trong
ứng dụng, và làm việc với tất cả cơ sở dữ liệu được hỗ trợ.

2.3.4.1.1. Truy vấn dữ liệu bằng QueryBuider trong laravel
 lấy tất cả dữ liệu trong bảng sử dụng câu lệnh :
DB::table('tên bảng') -> get()
VD:
$user=DB::table('users')->get();
print_r($user);
kết quả trả về là :
Array(
[0] => stdClass Object
(
[id]

=>

1,


[name]

=>

Nguyễn văn A

[id]

=>

2,

[name]

=>

Nguyễn văn B

),
[1] => stdClass Object
(

)
)
 Lấy một dòng dữ liệu từ CSDL sử dụng câu lệnh:
DB::table('tên bảng')->where('tên cột', 'điều kiện')->first();
- 16 -



 Sử dụng mệnh đề select :
DB::table('tên bảng')->select('tên cột 1', 'tên cột 2',...)->get();
 Sử dụng mệnh đề where thêm điều kiện:
DB::table('tên bảng')->where('tên cột', 'diều kiện', giá trị so sánh)
->get();
 Sử dụng mệnh đề or where:
DB::table('tên bảng')->where('tên cột', giá trị')
->orWhere('tên cột', giá trị)->get();
 Sử dụng mệnh đề where between
DB::table('tên bảng')->whereBetween('tên cột',
[giá trị bắt đầu,giá trị kết thúc])->get();
 Sử dụng OrderBy, GroupBy và Having:
DB::table('tên bảng')->orderBy('tên cột cần order','DESC')
->groupBy('trường cần gộp')
->having('tên cột', 'điều kiện', 'giá trị só sánh')
->get()
 Sử dụng limit:
DB::table('tên bảng')->skip('giá trị bắt đầu cần lấy')
->take('số lượng record cần lấy')->get()
 Join bảng dữ liệu:
DB::table('tên bảng1')
->join(
'tên bảng 2', 'tên bảng 1.khóa chính', '=','tên bảng 2.khóa ngoại'
)->get()
 Left join:
DB::table('tên bảng 1')
->leftJoin(
'tên bảng 2', 'tên bảng 1. khóa chính','=', 'tên bảng 2.khóa ngoại'
- 17 -



)->get()
 Sử dụng hàm:
DB::table('tên bảng')->count();
DB::table('tên bảng')->max('cột cần lấy giá trị max');
DB::table('tên bảng')->min('cột cần lấy giá trị min');
DB::table('tên bảng')->avg('cột cần avg');
DB::table('tên bảng')->sum('tên cột cần sum');

 Chèn dữ liệu vào bảng:
DB::table('tên bảng')->insert(
['tên cột 1' => 'giá trị', 'tên cột 2' => 'giá trị']
);
 Update dữ liệu:
DB::table('tên bảng')->where('tên cột', 'giá trị')->update(
[
'tên cột 1'

=>

'giá trị cần update',

'tên cột 2'

=>

'giá trị cần update'

]
)

 Delete dữ liệu:
DB::table('tên bảng')->where('tên cột', 'điều kiện', 'giá trị')
->delete();
2.3.4.2. Sử dụng Eloquent ORM trong laravel
Eloquent trong laravel chính là một ORM(Object-relational mapping) cung
cấp các activeRecord đơn giản nhưng vô cùng chuyên nghiệp giúp chúng ta làm
việc với cơ sở dữ liệu thuận tiện hơn.

- 18 -


Để sử dụng được eloquent ORM trong laravel trước tiên ta phải tạo model
bằng cách ở trên.
VD:
class User extends Eloquent{
protected $table = 'uers';
}
+ 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.
2.3.4.2. Lấy dữ liệu bằng eloquent ORM trong laravel:
 Lấy tất cả dữ liệu của bảng:
$data= App\Models\Tên model::all();
 Lấy một dữ liệu theo khóa chính:
$data= App\Models\Tên model :: find(giá trị)
 Truy vấn sử dụng Eloquent ORM:
$data= App\Models\Tên model :: where (
'tên cột', 'điều kiện', giá trị
)->take(giá trị records cần lấy)->get()
 Sử dụng hàm trong Eloquent ORM:

$count = App\Models\Tên model :: where(
'tên cột', 'điều kiện', giá trị
)->count();
 Thêm dữ liệu (Insert) bằng Eloquent ORM:
$insert = new tên model ();
$insert → tên cột của bảng = giá trị;
$insert → save();
hoặc
$tên model :: create(
[
- 19 -


'tên cột 1'

=>

'giá trị',

'tên cột 2'

=>

'giá trị'

]
);
 Cập nhật dữ liệu (Update) bằng Eloquent ORM:
$update = $ tên model :: find('id record cần cập nhật');
$update → tên cột cần cập nhật = giá trị cập nhật;

$update → save();
 Xóa dữ liệu (Delete) bằng Eloquent ORM:
$delete= $ tên model :: find(id record cần xóa');
$delete->delete();
hoặc
$delete = $tên model :: detroy(['id record cần xóa'])
Xóa nhiều reocords
$delete = $tên model :: detroy(
['id record 1', 'id record 2' ,'id record 3']
)
2.3.4.3. Tạo bảng với Schema Builder.
Để sử dụng được Schema Buider cần phải cấu hình các thông số kết nối đến
cơ sở dữ liệu trong file App/config/database.php
'mysql' => array(
'driver'

=>

'mysql',

'host'

=>

'localhost',

'database' =>

'tên bảng cần kết nối',


'username' =>

'username của mysql',

'password' =>

'',

'charset'

'utf8',

=>

'collation' =>

'utf8_unicode_ci',

'prefix'

''

=>

- 20 -


)
Lớp Schema Buider trong laravel cung cấp cơ chế thao tác với cơ sở dữ liệu,
nó làm việc với tất cả cơ sở dữ liệu và thông qua những hàm API của hệ thống.

- Phương thức Create - tạo bảng dữ liệu:
Schema :: create ('tên bảng', function($table){
$table->increments('id');
$table->string('tên cột 1');
$table->integer('tên cột 2');

$table->timestamps();
});
+ increment : tạo khóa chính cho bảng dữ liệu và khóa này tự động tăng.
+ string : tạo cột dạng chuỗi giống như kiểu nvarchar
+ integer : tạo cột dạng số nguyên.
+ timestamps: lệnh này sẽ tạo ra hai cột created_at và updated_at trong
bảng, nó là hai trường mặc định để lưu thời gian tạo và sửa cột trong bảng.
- Phương thức rename- đổi tên bảng dữ liệu:
Schema :: rename($from, $to);
$from: tên bảng hiện tại.
$to: tên bảng mới.
- Phương thức drop - xóa bảng dữ liệu:
Shema :: drop ('tên bảng') hoặc Schema::dropIfExit('tên bảng');
- Phương thức table - cập nhật tên cột vào một bảng hiện tại:
Schema::table('tên bảng', function($table){
$table->string('tên cột');
});
- Phương thức rename colums - đổi tên cột:
Schema :: table ('tên bảng', function ($table){
$table->renameColum('tên cột muốn đổi', 'tên cột mới');
});
- 21 -



- Phương thức drop colums - xóa cột:
Schema::table('tên bảng', function ($table){
$table->dropColum('tên cột cần xóa');
});
- Phương thức has table - kiểm tra có tồn tại bảng không:
if(Schema:: hasTable('tên bảng')){
// code
}
- Phương thức has colums - kiểm tra có tồn tại cột không:
Schema :: table('tên bảng', function ($table){
if(Schema::hasColum('tên cột')){
//code
}
});
- Sử dụng khóa ngoại:
$table->integer('tên khóa ngoại')->unsigned();
$table->foreign('tên khóa ngoại')->references('khóa chính')
->on('tên bảng');
hoặc
$table->integer('tên khóa ngoại')->unsigned();
$table->foreign('tên khóa ngoại')->references('khóa chính')
->on('tên bảng')->onDelete('cascade');
2.3.4.4. Tạo dữ liệu mẫu với Seeding trong laravel
Seeding hay còn được gọi là seeder, seed... thực ra nó là một class chứa code
để tạo ra các dummy data (dữ liệu mẫu) cho database trong quá trình xây dựng
ứng dụng.
- Sử dụng seeder mặc định của laravel:
Mặc định laravel cung cấp cho chúng ta một database seeder trong thư mục
database/seeds/

- 22 -


ues Illuminate/Database/Seeder
class DatabaseSeeder extends Seeder{
/**
* Run the database seeds
*
* Return void
public function run(){
//$this->call(UsersTableSeeder::class);
}
}
?>

Để sử dụng nó ta chỉ cần viết queryBuider vào đó.
VD:
ues Illuminate/Database/Seeder
class DatabaseSeeder extends Seeder{
/**
* Run the database seeds
*
* Return void
public function run(){
DB::table('users')->insert(

[
'name'


=>

'Nguyễn Văn A',

'email'

=>

'',

'phone'

=>

'0123456789'

]
- 23 -


)
}
}
?>
Để chạy được nó ta sử dụng lệnh : php artisan db:seed
- Tạo Seeder:
Để tạo Seeder trong laravel ta dùng lệnh php artisan make:seed seedname
VD:
Mở comment line và gõ lệnh php artisan make:seed UsersSeed.
Sau đó vào thư mục database/seeds/ mở file UsersSeed.php lên và chèn

code Query Buider vào đó.

ues Illuminate/Database/Seeder
class UsersSeeder extends Seeder{
/**
* Run the database seeds
*
* Return void
public function run(){
DB::table('users')->insert(
[
'name'

=>

'Nguyễn Văn A',

'email'

=>

'',

'phone'

=>

'0123456789'


]
)
- 24 -


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×