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

Lập trình website bằng LARAVEL framework

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 (207.08 KB, 31 trang )

1

GIÁO TRÌNH LARAVEL 5.3

GIÁO TRÌNH LARAVEL 5.3 - BUỔI 1
A – LÝ THUYẾT
I – GIỚI THIỆU
1. PHP Framework
PHP Framework là thư viện của PHP, giúp lập trình viên viết code PHP một cách dễ dàng,
khoa học và nhanh chóng.
Hiện nay có rất nhiều PHP Framework trên thị trường, và mỗi một PHP Framework được
phát triển bởi các bên thứ ba khác nhau, mỗi PHP Framework có được những ưu, nhược điểm khác
nhau.
2. Laravel Framework
Laravel Framework chính là một PHP Framework điển hình, trong rất nhiều các PHP
Framework phổ biến nhất hiện này như Laravel, Phalcon, CodeIgniter, Zend, Symfony, CakePHP,…
thì Laravel là Framework phổ biến và được đánh giá là toàn diện nhất đến thời điểm hiện tại.

II – CÀI ĐẶT
1. Cài đặt Composer
Composer là…
Vào để download composer. exe về. Quá trình cài đặt bình thường.
Chú ý:



Nếu bạn nào không cài XAMPP vào ổ mặc định (c) thì khi lựa chọn thư mục cài cần chọn đúng
đến file php.exe
Ngoài ra sau khi cài xong thì (1) là restart lại máy hoặc lock ra khỏi tài khoản admin, rồi sau
đó vào lại


Cách 2: Không cần cài đặt
B1. Các bạn download file composer.phar theo đường dẫn sau />(kéo xuống dưới download bản mới nhất)
B2. Thư mục nào cần sử dụng thì chép file composer.phar vào.


2

GIÁO TRÌNH LARAVEL 5.3

2. Cài đặt Laravel
B1. Tạo thư mục chứa thư viện của Laravel
B2. Mở cmd lên, đi vào thư mục đó và gõ theo cú pháp sau:

composer create-project --prefer-dist laravel/laravel blog

php artisan key:generate

III - CHẠY LARAVEL
1. Chạy thông qua thư mục public
http://localhost/laravel/public

2. Tối ưu đường dẫn
http://localhost/laravel

IV – ROUTE
1. Route là gì ?
Route là một khái niệm rất hay và rất quan trọng trong Laravel. Các bạn cứ hình dung Route
giống như một người lễ tân trong khách sạn, các đường dẫn người người dùng gõ hay truy cập vào
hệ thống của chúng ta giống như những người khách đến nghỉ, họ đều phải thông qua Route, Route
sẽ nhận biết các khách hàng khác nhau và hướng dẫn họ nghỉ ở những căn phòng khác nhau


2. Các phương thức của Route
a. Phương thức GET


3

GIÁO TRÌNH LARAVEL 5.3

Nhận các tham số được truyền trên thanh địa chỉ của trình duyệt để thực thi một công việc
tương ứng
Cú pháp:
Route::get(‘URI’, Action)
 URI: Uniform Resource Identifier là một chuỗi ký tự được sử dụng để xác định, nhận dạng
một tên hoặc một tài nguyên.
 Action: Có thể là một hàm, mảng hay một chuỗi, nó sẽ được Route thực hiện dựa vào URI
Ví dụ:

Route::get('home', function(){
return 'Vietpro Academy';
});

b. Phương thức POST
Được sử dụng khi đón dữ liệu từ Form trả về
Cú pháp:
Route::get(‘URI’, Action)
Ví dụ:

Route::get('home', function(){
echo '<form method="post">';

echo '<input type="text" name="txt" />';
echo '<input type="submit" name="submit" value="Test" />';
echo csrf_field();
echo '</form>';
});


4

GIÁO TRÌNH LARAVEL 5.3

c. Các phương thức nghiên cứu sau
 macth
 any
 filter
 group
 controller
 resource

V – CONTROLLER
1. Controller là gì
Controller chính là trái tim của ứng dụng, tất cả mọi dữ liệu cần được xử lý sẽ được thự hiện
trong Controller, ngoài ra các dữ liệu cần được đẩy đi đâu, điều hướng đến nới nào cũng đều do
Controller quyết định hết
Vậy Controller có tác dụng nhận, xử lý và điều hướng dữ liệu trong một hệ thống.

2. Tạo mới một Controller
C1: Vào thư mục Controllers theo đường dẫn app/Http/Controllers để tạo mới một file Controller
với yêu cầu tên Class trùng tên File (Sử dụng autoload)


namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;


5

GIÁO TRÌNH LARAVEL 5.3

class DemoController extends Controller
{
public function demo(){
return 'Vietpro Academy';
}
}

C2:
Vào Command gõ

php artisan make:controller controllerName

4. Sử dụng Controller trong Laravel 5

Route::get(‘param’, ‘ControllerClass@ControllerMethod’);

5. Truyền tham số cho Controller

Route::get('demo/{param1}/{param2}', 'DemoController@demo');



6

GIÁO TRÌNH LARAVEL 5.3

class DemoController extends Controller
{
public function demo($param1, $param2){

return 'Vietpro Academy: '.$param1.' - '.$param2;
}
}

Chú ý: Trong trường hợp nếu như chúng ta muốn chủ động trong việc truyền tham số đối với
Controller (có thể truyền khoặc không) thì sau tên tham số truyền các bạn bổ sung thêm dấu chấm hỏi
(?)

VI - VIEW
1. View là gì ?
View chính là các file giao diện, ở các file này chỉ tập trung các mã HTML, các kết quả trả về
từ Controller thuần túy, chứ không co bất cứ một thuật toán hay xử lý nào ở đây cả
Một View thông thường có thể sử dụng các biểu thức điều kiện, vòng lặp để để xuất dữ liệu
phục vụ cho việc hiển thị
View được sinh ra để tách biệt tối đa mã giao diện với code xử lý PHP, thông thường thì
View chỉ tách được 80-90% code php khỏi giao diện, muốn tách 100% thì phải kết hợp với một
Template Enzine (Laravel sử dụng Blade Template mà chúng ta sẽ học ở những buổi sau)

2. Tạo mới một View



7

GIÁO TRÌNH LARAVEL 5.3

Để tạo mới một View các bạn tìm tới thư mục resources/views/ và tạo một file .php bất kỳ

3. Gọi View trong Controller

class DemoController extends Controller
{
public function demo(){

return view('Folder.viewFileName');
}
}

4. Truyền tham số cho View
Controller luôn truyền tham số sang View theo dạng mảng, và kết quả View nhận được sẽ là
các giá trị được lưu trữ trong các biến được tạo bởi các KEY từ từ các phần tử mảng mà Controller
truyền sang
Ví dụ 1:
Controller

class DemoController extends Controller
{
public function demo(){
$arr['khoahoc'] = 'Laravel';



8

GIÁO TRÌNH LARAVEL 5.3

return view('admin.demoView', $arr);
}
}

View

echo $khoahoc;
?>

Ví dụ 2:
Controller

class DemoController extends Controller
{
public function demo(){
$arr = [
'khoahoc'=>'Laravel',
'trungtam'=>'Vietpro'
];
return view('admin.demoView', $arr);
}
}

View



9

GIÁO TRÌNH LARAVEL 5.3

echo $khoahoc.'
'.$trungtam;
?>

B – BÀI TẬP
I – BÀI TẬP THỰC HÀNH
1. Xây dựng ứng dụng máy tính đơn giản bằng Laravel

II – BÀI TẬP VỀ NHÀ
2. Xây dựng ứng dụng máy tính đơn giản bằng Laravel với các yêu cầu sau
 Kiểm tra trường trống
 Hiển thị lại giá trị, phép toán và kết quả vào các trường Textbox


10

GIÁO TRÌNH LARAVEL 5.3

GIÁO TRÌNH LARAVEL 5.3 - BUỔI 2
A – LÝ THUYẾT
I – BLADE TEMPLATE
1. Blade Template là gì ?
Blade Template chính là một Template Enzine trong Laravel, nó giúp lập trình viên tách hoàn
toàn code PHP một cách sạch sẽ ra khỏi các file View.


2. Tạo và sử dụng Blade Template
Các file Blade Template luôn luôn có cách đặt tên như sau

filename.blade.php

Chú ý: Các bạn vẫn có thể viết code PHP một cách thoải mái trong các View Blade Template (nhưng
trong thực tế không ai làm điều này, vì Blade Template sinh ra là để tách code PHP hoàn toàn ra khỏi
View)

3. Các cú pháp làm việc trong Blade Template
a. Xuất ra giá trị của biến hoặc thực thi các hàm

{{$bien}}
{{tinhTong($st1, $st2)}}

b. In ra một chuỗi HTML

{{‘

Học viện Công Nghệ Vietpro

’}}

c. Bỏ qua cú pháp của Blade Template


11

GIÁO TRÌNH LARAVEL 5.3

@{{{

Học viện Công Nghệ Vietpro

}}}

d. Chạy các biểu thức điều kiện


@if()
//

Code...

@endif

@if()
//

Code...

@elseif
//

Code...

@else
//

Code...

@endif

e. Chạy các vòng lặp

@for()
//

Code...


@endfor


12

GIÁO TRÌNH LARAVEL 5.3

4. Kế thừa giao diện
Kế thừa giao diện là hình thức các bạn nạp hoàn toàn 1 file Blade Template khác vào file
Blade Template hiện tại
Cú pháp:

@extends(‘Folder/FileName’)

Ví dụ:
Controller

public function demo1(){
return view('control');
}

control.blade.php

@extends('master')

Master.php

<div class="wrapper">
<div class="header">header</div>

<div class="body">body</div>
<div class="footer">footer</div>
</div>


13

GIÁO TRÌNH LARAVEL 5.3

5. Ghi đè giao diện
Ghi đè giao diện là hình thức định nghĩa từng khối giao diện khác nhau và có thể sử dụng
vào bất cứ vị trí nào trên giao diện chính bằng cách triệu gọi lại
Cú pháp:
Định nghĩa một khối giai diện

@section('body')
<div class="body">body</div>
@stop

Sử dụng lại khối giao diện đó ở BTPL (Blade Template) khác

@yield('body')

Ví dụ:
Controller

public function demo1(){
return view('control');
}


control.blade.php

@extends('master')

@section('body')
<div class="body">body</div>


14

GIÁO TRÌNH LARAVEL 5.3

@stop

Master.php

<div class="wrapper">
<div class="header">header</div>
@yield('body')
<div class="footer">footer</div>
</div>

6. Ghi đè một cấu trúc đơn giản
Nếu như muốn ghi đè nội dung đơn giản dạng Text tuần túy thì chỉ cần định nghĩa nội dung
đó với cú pháp sau:

@section('title', 'Blade Template')

7. Mở rộng giao diện
Là cách thúcw định nghĩa một khối giao diện, đồng thời kế thừa lại một khối giao diện khác

đã được định nghĩa trước đó (cùng tên)
Ví dụ:
Controller

public function demo1(){
return view('control');
}

control.blade.php


15

GIÁO TRÌNH LARAVEL 5.3

@extends('master')

@section('title', 'Blade Template')

@section('body')
<div class="body">body</div>
@stop

@section('footer')
@parent
<div>footer bottom</div>
@stop

Master.php


<div class="wrapper">
<div class="header">header</div>
@yield('body')
<div class="footer">
@section('footer')
<div>footer top</div>
@show
</div>
</div>


16

GIÁO TRÌNH LARAVEL 5.3

II – ERRORS VIEW
1. Error View là gì ?
Trong Laravel Error View được sử dụng để giúp lập trình viên tạo ra các cảnh báo hoặc
thông báo từ hệ thống cho View.
Error chính là một BTPL (Blade Template) do chính lập trình viên tự xây dựng theo ý mình,
và được Laravel quy định đặt trong thư mục errors nằm trong thư mục views.

2. Sử dụng Error View
Ví du:
Tạo file note.blade.php

@if(isset($error))

{{$error}}


@endif


Controller

public function demo1(){
return view('viewDemo', ['error'=>'Warning...']);
}

viewDemo

@include('errors.note')


17

GIÁO TRÌNH LARAVEL 5.3

III – VALIDATION
1. Validation là gì
Validation là quá trình kiểm tra tính hợp lệ của các thông tin nhập vào Form. Chẳng hạn như
kiểm tra email hợp lệ, dữ liệu nhập vào phải là số, dữ liệu nhập tối đa bao nhiêu ký tự, tối thiểu bao
nhiêu ký tự,…
2. Rules trong Laravel 5
Rules là các quy tắc bắt buộc mà một phần tử Form phải tuân theo, theo đúng nguyên tắc mà
Laravel đã định nghĩa sẵn
a. Một số quy tắc thông dụng
 required
 numeric
 email
 max:12
 min:6
b. Một số quy tắc khác

 sometimes
 unique:users
 Do lập trình viên tự định nghĩa

3. Cách sử dụng
a. Sử dụng thư viện Validator

use Validator;

b. Bắt lỗi
Laravel sử dụng cách thức sau để bắt lỗi và trả về kết quả

$Validator = Validator::make($request->all(), $rules, $message);


18

GIÁO TRÌNH LARAVEL 5.3

Trong đó:
 $request chính là thông tin Form và nhiều thông tin khác sẽ nhận được sau khi Submit
 Phương thức $request->all() lấy ra một mảng các phần tử của Form với name & value
 $rules là các quyền do chính chúng ta thiết lập
 $message là các cảnh báo cũng do chính chúng ta thiết lập

c. Lấy kết quả của Validator
Sau khi đối tượng $Validator được khởi tạo từ phương thức make thì nó có những phương
thức rất quan trọng sau để cho phép chúng ta theo tác với các kết quả nhận được
Trả về TRUE nếu có lỗi


$Validator->errors()

Trả về TRUE nếu không có lỗi

$Validator->passes()

Trả về một đối tượng tất cả các thông tin sau quá trình Validation

$Validator->messages()

$Validator->errors()

Chú ý: Phương thức all() trong Laravel giúp trả về một mảng phần từ cần thiết từ một đối tượng với
rất nhiều mảng phần tử lẫn lộn
Ví dụ


19

GIÁO TRÌNH LARAVEL 5.3

$Validator->messages()->all()

$Validator->errors()->all()

B – BÀI TẬP
I – BÀI TẬP THỰC HÀNH
1. Xây dựng ứng dụng Login có các trường được Validate như sau:
 Tài khoản & Mật khẩu không được để trống
 Tài khoảng phải là Email

 Mật khẩu phải là dạng số tối thiểu 3 ký tự và tối đa 6 ký tự
 Nếu nhập sai tài khoản thì báo lỗi, ngược lại báo đăng nhập thành công với tài khoản
và mật khẩu 123456
Chú ý: Sử dụng Layout mẫu được cung cấp từ giảng viên để thực hành

II – BÀI TẬP VỀ NHÀ
2. Xây dựng Ứng dụng điều hướng Layout của Master Page với các tiêu chí sau
 Chạy Route admin thì hiển thị danh sách thành viên
 Chạy Route add thì hiển thị Form thêm mới
 Chạy Route edit thì hiển thị Form sửa
Chú ý: Có thể áp dụng phương thức sau để tạo tham số cho Route
 asset(‘/’): tương đương http://localhost/vietpro
 asset(‘/home’): tương đương http://localhost/vietpro/home


20

GIÁO TRÌNH LARAVEL 5.3

GIÁO TRÌNH LARAVEL 5.3 - BUỔI 3
A – LÝ THUYẾT
I – SCHEMA BUILDER
1. Schema builder là gì ?
Schema là một Class trong Laravel, nó giúp Laravel có thể thao tác với các bảng dữ liệu như
thêm, sửa, xóa một cách dễ dàng và khoa học.
Schema builder là cách nói về Laravel sử dụng các phương thức của Class Schema để thêm
sửa, xóa các bảng và cột dữ liệu.

2. Tạo CSDL mẫu và kết nối với Laravel
B1. Vào PHPMyAdmin để tạo CSDL

B2. Để cấu hình kết nối CSDL chúng ta có thể sử dụng một trong 2 cách sau:
 C1. Cấu hình trong file database.php nằm trong thư mục config
 C2. Cấu hình trong file .env

3. Xây dựng bảng với Schema builder
a. Phương thức tạo bảng dữ liệu create()
Cú pháp:

Schema::create(‘table_name’, function($table){});

Ví dụ:

Schema::create('users', function($table){
$table->increments('user_id');
});


21

GIÁO TRÌNH LARAVEL 5.3

b. Phương thức đổi tên bảng dữ liệu rename()
Cú pháp:

Schema::rename(oldTableName, newTableName);

Ví dụ:

Schema::rename(‘users’, ‘thanhvien’);


c. Phương thức xóa bảng dữ liệu drop()
Cú pháp:

Schema::drop(tableName);
Schema::dropIfExists(tableName);

Ví dụ:

Schema::drop('users');
Schema::dropIfExists('users');

d. Phương thức thêm một cột mới vào bảng table()
Cú pháp:

Schema::table(tableName, function($table){
$table->string(columnName);
});

Ví dụ:


22

GIÁO TRÌNH LARAVEL 5.3

Schema::table('users', function($table){
$table->string(user_name);
});

e. Phưng thức đổi tên cột remaneColumn()

Cú pháp:

Schema::table(tableName, function($table){
$table->renameColumn(oldColumnName, newColumnName);
});

Ví dụ:

Schema::table(‘users’, function($table){
$table->renameColumn(‘user_id’, ‘userid’);
});

f. Phương thức xóa một hoặc nhiều cột từ bảng dropColumn()
Cú pháp:

Schema::table(tableName, function($table){
$table->dropColumn(columnName);
});

Schema::table(tableName, function($table){


23

GIÁO TRÌNH LARAVEL 5.3

$table->dropColumn(columnName-1, columnName-2,… columnName-N);
});

Ví dụ:


Schema::table('users', function($table){
$table->dropColumn('user_name');
});

Schema::table('users', function($table){
$table->dropColumn('user_name', 'user_pass', 'user_mail');
});

g. Phương thức kiểm tra sự tồn tại của bảng hasTable()
Cú pháp:

if(Schema::hasTable(tableName)){
//
}

Ví dụ:

if(Schema::hasTable('users')){
//
}


24

GIÁO TRÌNH LARAVEL 5.3

h. Phương thức kiểm tra sự tồn tại của cột hasColumn()
Cú pháp:


if(Schema::hasColumn(tableName, columnName)){
//
}

Ví dụ:

if(Schema::hasColumn('users', 'user_name')){
//
}

II – MIGRATION
1. Migration là gì ?
Migration trong Laravel được sử dụng để quản lý các Schema một cách dễ dàng và khoa học.
Các Schema sẽ được viết trong các Migration và chúng sẽ được thực thi công việc của mình một khi
Migration được chạy.

2. Xây dựng CSDL với Migration
a. Tạo Migration để quản lý các Schema
C1. Tạo Migration quản lý không kèm bảng dữ liệu
CMD:

php artisan make:migration create_migrationName_table


25

GIÁO TRÌNH LARAVEL 5.3

Kết quả:


use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTest1Table extends Migration
{
public function up()
{
//
}

public function down()
{
//
}
}

C2. Tạo Migration quản lý có kèm bảng dữ liệu
CMD:

php artisan make:migration create_migrationName_table --table=tableName


×