class DemoController extends Controller{ public function demo{ return 'Vietpro Academy'; } } C2: Vào Command gõ php artisan make:controller controllerName 4.. Truyền tham số cho Controll
Trang 12 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.ệ ấ ế ờ ể ệ ạ
Trang 22 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
2 Các ph ươ ng th c c a Route ứ ủ
a Phương th c GETứ
Trang 3Nh 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ự ệ ự
echo '<form method="post">';
echo '<input type="text" name="txt" />';
echo '<input type="submit" name="submit" value="Test" />';
echo csrf_field();
echo '</form>';
});
Trang 4c Các phương th c nghiên c u sauứ ứ
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;
Trang 5class 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');
Trang 6class DemoController extends Controller
{
public function demo($param1, $param2){
return 'Vietpro Academy: '.$param1.' - '.$param2;
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ỳể ạ ớ ộ ạ ớ ư ụ ạ ộ ấ
Trang 73 G i View trong Controller ọ
class DemoController extends Controller
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ề
Trang 8return view('admin.demoView', $arr);}
}
View
<?php
echo $khoahoc.'<br/>'.$trungtam;
Trang 103 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
{{‘<h1 align="center">H c vi n Công Ngh Vietpro</h1>’}}ọ ệ ệ
c B qua cú pháp c a Blade Templateỏ ủ
Trang 11@{{{<h1 align="center">H c vi n Công Ngh Vietpro</h1>}}}ọ ệ ệ
Trang 161 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.ằ ư ụ
public function demo1(){
return view('viewDemo', ['error'=>'Warning ']);
}
viewDemo
@include('errors.note')
III – VALIDATION
Trang 171 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 ị ẵ
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 đó:
Trang 18 $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
Trang 19$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ả ả
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
Trang 20 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 ự ả ớ
Trang 21b Phương th c đ i tên b ng d li u rename()ứ ổ ả ữ ệ
Trang 23$table->dropColumn(columnName-1, columnName-2,… columnName-N);});
Trang 24h Phương th c ki m tra s t n t i c a c t hasColumn()ứ ể ự ồ ạ ủ ộ
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.ạ
Trang 26class CreateTest2Table extends Migration
Trang 27class CreateTest3Table extends Migration
b Xây d ng b ng v i Schema trong Migration fileự ả ớ
public function up()
Trang 29B1 T o file Seeder trùng tên v i Migration đang qu n lý b ng d li uạ ớ ả ả ữ ệ
php artisan make:seeder UsersTableSeeder
B2 G i t i file Seeder trong class DatabaseSeederọ ớ
1 Xây d ng CSDL users_manager và khai báo các thông s đ k t n i Laravel đ n CSDL đó ự ố ể ế ố ế
2 Xây d ng b ng d li u users có các trự ả ữ ệ ường thông tin nh dư ưới đây:
user_id: increments
user_fullname: string
user_name: string
user_pass: string
Trang 31 post_conten: text
post_create: timestamp nullable
post_update: timestamp nullable