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

GIÁO TRÌNH LARAVEL PHẦN I

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

1GIÁ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.


2GIÁ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



3GIÁ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>';
});



4GIÁ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;


5GIÁ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');


6GIÁ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
Để 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ỳ


7GIÁO TRÌNH LARAVEL 5.3

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';
return view('admin.demoView', $arr);
}


8GIÁO TRÌNH LARAVEL 5.3

}

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
echo $khoahoc.'
'.$trungtam;


9GIÁO TRÌNH LARAVEL 5.3

?>

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


10GIÁ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


11GIÁ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


12GIÁ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>


13GIÁ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>
@stop


14GIÁO TRÌNH LARAVEL 5.3

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


15GIÁ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>

II – ERRORS VIEW


16GIÁO TRÌNH LARAVEL 5.3

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')

III – VALIDATION


17GIÁO TRÌNH LARAVEL 5.3

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);
Trong đó:


18GIÁO TRÌNH LARAVEL 5.3

 $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ụ


19GIÁ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


20GIÁ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');
});


21GIÁ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ụ:


22GIÁ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){



23GIÁ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')){
//
}


24GIÁ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


25GIÁ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

Kết quả:


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

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