Tự học lập trình website bằng LARAVEL framework. Tài liệu được biên soạn bởi trung tâm đào tạo lập trình website chuyên nghiệp. Hướng dẫn bạn lập trình website thương mại điện tử từ A đến Z
Trang 1GIÁO TRÌNH LARAVEL 5.3 - BUỔI 4
Thao tác với Query Builder, chúng ta sẽ không sử dụng các câu truy vấn SQL thuần túy nữa,
mà chúng ta sẽ viết các truy vấn SQL dưới dạng các phương thức được Laravel xây dựng sẵn
2 Sử dụng Query Builder
Nơi nào các bạn muốn sử dụng lớp Database thì các bạn chỉ cần sử dụng cứ pháp sau
use DB;
II – CÁC PHƯƠNG THỨC THAO TÁC VỚI DATABASE
1 Phương thức thêm dữ liệu INSERT
Trang 2b Thêm nhiều bản ghi
Cú pháp:
DB::table('tableName')->insert(
[
['column1' => 'value1', 'column2' => 'value2'],
['column1' => 'value3', 'column2' => 'value4']
['user_name' => 'admin', 'user_pass' => '123'],
['user_name' => 'vietpro', 'user_pass' => '111']
DB::table('users')->where('user_id', 10)->update(['user_name' => 'thanhvien10']);
3 Phương thức xóa dữ liệu delete()
Cú pháp:
DB::table('tableName')->delete();
Trang 4->where('user_id', '<', 5)->get();
$users = DB::table('users')->where([['user_id', '>', 3],['user_id', '<', 5]])->get();
f WHERE kết hợp với LIKE
$users = DB::table('users')->where('user_name', 'like', '%van%')->get();
g WHERE kết hợp với IN (whereIn)
$users = DB::table('users')->whereIn('user_id', [1,2,3])->get();
h ORDERING
$users = DB::table('users')->orderby('user_name', 'asc')->get();
$users = DB::table('users')->orderby('user_name', 'desc')->get();
Trang 5l COUNT
$users = DB::table('users')->count();
B – BÀI TẬP
I – BÀI TẬP THỰC HÀNH
1 Xây dựng Ứng dụng Login Form với các yêu cầu sau
Báo lỗi trường trống
Password trong khoảng từ 3-6 ký tự
Tài khoản nếu không có trong CSDL thì báo lỗi
Nếu tài khoản tồn tại trong CSDL thì báo đăng nhập thành công
II – BÀI TẬP VỀ NHÀ
2 Hiển thị tất cả các User trong bảng users ra ngoài giao diện HTML của trang Admin
Chú ý: Giao diện Form Login (của bài tập 1) và giao diện trang Admin (của bài tập 2) được cung cấp
bởi giảng viên trong khóa học
Trang 6GIÁO TRÌNH LARAVEL 5.3 - BUỔI 5
A – LÝ THUYẾT
I – SESSION
1 Session trong Laravel là gì ?
Trong Laravel, Session là một lớp mà trong đó có rất nhiều các phương thức được xây dựng sẵn, giúp chúng ta thao tác với Session như: khởi tạo Session, xóa Session, kiểm tra Session,… một cách linh hoạt và dễ dàng mà không cần thông qua các hàm thao tác gốc với Session bằng PHP
2 Làm việc với Session
Để sử dụng được Session thì cần phải nạp Session vào thông qua cú pháp sau:
use Session;
3 Các phương thức của Session
a Khởi tạo Session với Phương thức put()
Cú pháp:
Session:: put('sessionName ', 'sessionValue ');
Ví dụ:
Session:: put('course ', 'Laravel ');
b Truy vấn tất cả Session với Phương thức all()
Cú pháp:
Session::all();
Trang 7Session::flash('teacher', 'Tuan Hoang');
d Lấy giá trị của Session với Phương thức get()
Trang 92 Các bước sử dụng Middleware cho Controller
B1 Khởi tạo file Middleware trong thư mục Middleware
Trang 10php artisan make:middleware CheckUser
B2 Viết code kiểm tra quyền hoặc các tiêu chí cần có để bảo vệ Controller trong file Middleware CheckUser.php vừa tạo được ở B1
public function handle($request, Closure $next)
Trang 11B – BÀI TẬP
I – BÀI TẬP THỰC HÀNH
1 Xây dựng ứng dụng Login hoàn chỉnh với các tiêu chí sau:
Kiểm tra trường trống ở trang login
Tài khoản không hợp lệ thì báo lỗi
Tài khoản hợp lệ trong CSDL thì chuyển hướng tới trang admin
Nếu người dùng chưa đăng nhập thành công thì không thể truy cập thẳng vào trang admin được mà sẽ bị đẩy về trang login
II – BÀI TẬP VỀ NHÀ
2 Hoàn thành ứng dụng Login với yêu cầu sau:
Nếu người dùng đã đăng nhập thành công thì không thể nào truy cập lại được vào trang login mà thay vào đó là bị đẩy về trang admin
Trang 12GIÁO TRÌNH LARAVEL 5.3 - BUỔI 6
php artisan make:request LoginRequest
Chú ý: Mặc định chúng ta có thể sử dụng Request nhưng chúng ta cũng có thể tạo ra Request riêng theo
cú pháp trên
3 Lấy dữ liệu từ form
a Lấy tất cả dữ liệu từ form
Trang 13c Lấy tất cả ngoại trừ 1
$request->except(nameInput);
4 Kiểm tra dữ liệu
a Kiểm tra yêu cầu
Cú pháp:
$request->isMethod('post');
Ví dụ:
if($request->isMethod(‘post’)){ //code
}
b Kiểm tra giá trị tồn tại
if($request->has(NameInput)){ //code
}
5 Lấy đường dẫn
a Lấy đường dẫn trên thanh địa chỉ
$request->path();
Trang 14b Lấy tất cả đường dẫn
$request->Url();
Hoặc
$request->fullUrl();
6 Làm việc với File trong Request
a Kiểm tra sự tồn tại
Trang 15php artisan make:model nameModel
php artisan make:model nameModel –m ( tạo thêm migration )
ví dụ:
php artisan make:model vietpro -m
Trang 162 primaryKey với Model
protected $primaryKey =’nameColum’;
ví dụ:
protected $primaryKey =’user_id’;
Lưu ý: mặc định primaryKey là id nếu Cột của bạn là id thì không cần thay đổi
3 Table làm việc với Model
protected $table = ‘NameTable’;
protected $hidden = [’password’,’remember_token’];
6 Không hiển thị dữ liệu timestamps
public $timestamps = false;
7 Định dạng Date
Trang 17protected $dateFormat = 'U';
Trang 1811 Where trong Model
$product = new product;
$product->name = ‘hoc laravel’;
$product->price = ‘1000000’;
$product->save();
Trang 1915 Thêm dữ liệu bằng mảng
use App\product;
$product = new product;
$product:: create = ([‘name’=>’san pham1’]);
Trang 20use App\product;
$product::find(2)->delete();
Hoặc
$product::destroy(2);
18 Quan hệ one one
Ví dụ: chúng ta có bảng user và bảng phone (1 thành viên chỉ có 1 số điện thoại và ngược lại) đây là quan hệ one one
Trong model user
public function phone(){
return $this->hasone(‘App\phone’,’user_id’)
}
$data = user::find(2)->phone->get()->toArray();
Trong model phone
public function user(){
return $this->belongsTo(App/user)
}
$data = user::find(2)->phone->get()->toArray();
Trang 2119 one Many
Ví dụ: chúng ta có bảng danh mục và bảng bài viết (1 danh mục thì có nhiều bài viết và 1 bài viết chỉ thuộc 1 danh mục) đây là quan hệ 1 nhiều
Trong model category
public function post(){
return $this->hasMany(‘App\post,’cat_id’)
}
$data = category::find(2)->post->get()->toArray();
Trong model post
public function category(){
Trang 22 Tài khoản & Mật khẩu không được để trống
Tài khoản phải là Email
Tạo thêm 1 dữ liệu trong CSDL, kiểm tra nếu đúng trong CSDL chuyển hướng trang admin
Trong admin thêm chức năng update ảnh đại diện, nếu người dùng sửa ảnh dại diện thì xóa ảnh