Hướng dẫn lập trình website từ A đến Z bằng LARAVEL framework. Hướng dẫn chi tiết cho người mới bắt đầu, hoàn chỉnh một website thương mại điện tử. Học theo tài liệu này đảm bảo bạn có thể thành thạo lập trình LARAVEL và được làm quen với cách làm một dự án thực tế
Trang 1GIÁO TRÌNH LARAVEL 5.3 - BUỔI 1
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
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
php artisan key:generate
III - CHẠY LARAVEL
1 Chạy thông qua thư mục public
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
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
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
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;
}
}
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
Trang 7Để 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
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); }
return view('admin.demoView', $arr); }
}
View
Trang 92 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
Trang 10GIÁO TRÌNH LARAVEL 5.3 - BUỔI 2
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
{{‘<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>}}}
d Chạy các biểu thức điều kiện
Trang 124 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
Trang 135 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
Trang 146 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)
Trang 16II – 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
public function demo1(){
return view('viewDemo', ['error'=>'Warning ']);
}
viewDemo
@include('errors.note')
Trang 17III – 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
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);
Trang 18Trong đó:
$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->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 vietpro.edu.vn@gmail.com 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
Trang 20GIÁO TRÌNH LARAVEL 5.3 - BUỔI 3
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()
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()
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
Trang 27b Xây dựng bảng với Schema trong Migration file
public function up()
{
Schema::create('test3', function (Blueprint $table) { $table->increments('user_id');
$table->string('user_name');
Trang 283 Một số phương thức của Migration
a Phương thức thực thi Migration migrate
Trang 29d Phương thức hủy tất cả các bảng đã tạo bằng Migration reset
2 Các bước sử dụng Seeder để tạo dữ liệu mẫu
B1 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
Trang 31 post_name: string
post_slug: string
post_img: string
post_conten: text
post_create: timestamp nullable
post_update: timestamp nullable