Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
150 KB
Nội dung
1GIÁO TRÌNHLARAVEL 5.3 GIÁOTRÌNHLARAVEL 5.3 - BUỔI A – LÝ THUYẾT I – GIỚI THIỆU PHP Framework PHP Framework thư viện PHP, giúp lập trình viên viết code PHP cách dễ dàng, khoa học nhanh chóng Hiện có nhiều PHP Framework thị trường, PHP Framework đ ược phát triển bên thứ ba khác nhau, PHP Framework có nh ững ưu, nh ược ểm khác Laravel Framework Laravel Framework PHP Framework điển hình, nhi ều PHP Framework phổ biến Laravel, Phalcon, CodeIgniter, Zend, Symfony, CakePHP,… Laravel Framework phổ biến đánh giá toàn diện đ ến thời điểm t ại II – CÀI ĐẶT Cài đặt Composer Composer là… Vào https://getcomposer.org/ để download composer exe Quá trình cài đặt bình thường Chú ý: Nếu bạn không cài XAMPP vào ổ mặc định (c) lựa chọn thư mục cài c ần ch ọn đến file php.exe Ngồi sau cài xong (1) restart lại máy ho ặc lock 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 https://getcomposer.org/download/ (kéo xuống download nhất) B2 Thư mục cần sử dụng chép file composer.phar vào 2GIÁO TRÌNHLARAVEL 5.3 Cài đặt Laravel B1 Tạo thư mục chứa thư viện Laravel B2 Mở cmd lên, vào thư mục gõ theo cú pháp sau: composer create-project prefer-dist laravel/laravel blog php artisan key:generate III - CHẠY LARAVEL Chạy thông qua thư mục public http://localhost/laravel/public Tối ưu đường dẫn http://localhost/laravel IV – ROUTE Route ? Route khái niệm hay quan trọng Laravel Các bạn hình dung Route giống người lễ tân khách sạn, đường dẫn người người dùng gõ hay truy cập vào hệ thống giống người khách đến nghỉ, họ đ ều phải thông qua Route, Route nhận biết khách hàng khác hướng dẫn họ nghỉ phòng khác Các phương thức Route a Phương thức GET 3GIÁO TRÌNHLARAVEL 5.3 Nhận tham số truyền đị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 chuỗi ký tự sử dụng đ ể xác đ ịnh, nhận dạng tên tài nguyên Action: Có thể hàm, mảng hay chuỗi, Route thực dựa vào URI Ví dụ: Route::get('home', function(){ return 'Vietpro Academy'; }); b Phương thức POST Được sử dụng đón liệu từ Form trả Cú pháp: Route::get(‘URI’, Action) Ví dụ: Route::get('home', function(){ echo ''; echo ''; echo ''; echo csrf_field(); echo ''; }); 4GIÁO TRÌNHLARAVEL 5.3 c Các phương thức nghiên cứu sau macth any filter group controller resource V – CONTROLLER Controller Controller trái tim ứng dụng, tất liệu cần xử lý đ ược thự Controller, liệu cần đẩy đâu, điều hướng đến nới đ ều Controller định hết Vậy Controller có tác dụng nhận, xử lý điều hướng liệu hệ thống Tạo Controller C1: Vào thư mục Controllers theo đường dẫn app/Http/Controllers để tạo m ới 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ÌNHLARAVEL 5.3 class DemoController extends Controller { public function demo(){ return 'Vietpro Academy'; } } C2: Vào Command gõ php artisan make:controller controllerName Sử dụng Controller Laravel Route::get(‘param’, ‘ControllerClass@ControllerMethod’); Truyền tham số cho Controller Route::get('demo/{param1}/{param2}', 'DemoController@demo'); 6GIÁO TRÌNHLARAVEL 5.3 class DemoController extends Controller { public function demo($param1, $param2){ return 'Vietpro Academy: '.$param1.' - '.$param2; } } Chú ý: Trong trường hợp muốn chủ động việc truy ền tham s ố đ ối v ới Controller (có thể truyền khoặc khơng) sau tên tham số truy ền bạn b ổ sung thêm d ấu ch ấm hỏi (?) VI - VIEW View ? View file giao diện, file tập trung mã HTML, kết tr ả v ề từ Controller túy, không co thuật toán hay xử lý Một View thơng thường sử dụng biểu thức điều kiện, vòng lặp để để xuất liệu phục vụ cho việc hiển thị View sinh để tách biệt tối đa mã giao diện với code xử lý PHP, thơng th ường View tách 80-90% code php khỏi giao diện, muốn tách 100% ph ải kết h ợp v ới m ột Template Enzine (Laravel sử dụng Blade Template mà học buổi sau) Tạo View Để tạo View bạn tìm tới thư mục resources/views/ t ạo file php 7GIÁO TRÌNHLARAVEL 5.3 Gọi View Controller class DemoController extends Controller { public function demo(){ return view('Folder.viewFileName'); } } Truyền tham số cho View Controller truyền tham số sang View theo dạng mảng, kết View nhận đ ược giá trị lưu trữ biến tạo KEY t t 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ÌNHLARAVEL 5.3 } View Ví dụ 2: Controller class DemoController extends Controller { public function demo(){ $arr = [ 'khoahoc'=>'Laravel', 'trungtam'=>'Vietpro' ]; return view('admin.demoView', $arr); } } View B – BÀI TẬP I – BÀI TẬP THỰC HÀNH Xây dựng ứng dụng máy tính đơn giản Laravel II – BÀI TẬP VỀ NHÀ Xây dựng ứng dụng máy tính đơn giản Laravel với yêu cầu sau Kiểm tra trường trống Hiển thị lại giá trị, phép toán kết vào trường Textbox 10GIÁO TRÌNHLARAVEL 5.3 GIÁOTRÌNHLARAVEL 5.3 - BUỔI A – LÝ THUYẾT I – BLADE TEMPLATE Blade Template ? Blade Template Template Enzine Laravel, giúp lập trình viên tách hồn toàn code PHP cách khỏi file View Tạo sử dụng Blade Template Các file Blade Template ln ln có cách đặt tên sau filename.blade.php Chú ý: Các bạn viết code PHP cách thoải mái View Blade Template (nh ưng thực tế không làm điều này, Blade Template sinh đ ể tách code PHP hoàn toàn kh ỏi View) Các cú pháp làm việc Blade Template a Xuất giá trị biến thực thi hàm {{$bien}} {{tinhTong($st1, $st2)}} b In chuỗi HTML {{‘Học viện Công Nghệ Vietpro’}} c Bỏ qua cú pháp Blade Template 17GIÁO TRÌNHLARAVEL 5.3 Validation Validation q trình kiểm tra tính hợp lệ thông tin nh ập vào Form Ch ẳng h ạn nh kiểm tra email hợp lệ, liệu nhập vào phải số, liệu nhập tối đa ký tự, t ối thiểu ký tự,… Rules Laravel Rules quy tắc bắt buộc mà phần tử Form phải tuân theo, theo 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 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 trả kết $Validator = Validator::make($request->all(), $rules, $message); Trong đó: 18GIÁO TRÌNHLARAVEL 5.3 $request thông tin Form nhiều thông tin khác nhận đ ược sau Submit Phương thức $request->all() lấy mảng phần tử Form với name & value $rules quyền thiết lập $message cảnh báo thiết lập c Lấy kết Validator Sau đối tượng $Validator khởi tạo từ phương thức make có ph ương thức quan trọng sau phép theo tác với kết nhận đ ược Trả TRUE có lỗi $Validator->errors() Trả TRUE khơng có lỗi $Validator->passes() Trả đối tượng tất thơng tin sau q trình Validation $Validator->messages() $Validator->errors() Chú ý: Phương thức all() Laravel giúp trả mảng phần từ cần thiết từ đ ối tượng với nhiều mảng phần tử lẫn lộn Ví dụ 19GIÁO TRÌNHLARAVEL 5.3 $Validator->messages()->all() $Validator->errors()->all() B – BÀI TẬP I – BÀI TẬP THỰC HÀNH Xây dựng ứng dụng Login có trường Validate sau: Tài khoản & Mật không để trống Tài khoảng phải Email Mật phải dạng số tối thiểu ký tự tối đa ký tự Nếu nhập sai tài khoản 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 mật 123456 Chú ý: Sử dụng Layout mẫu cung cấp từ giảng viên để thực hành II – BÀI TẬP VỀ NHÀ Xây dựng Ứng dụng điều hướng Layout Master Page với tiêu chí sau Chạy Route admin hiển thị danh sách thành viên Chạy Route add hiển thị Form thêm Chạy Route edit 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ÌNHLARAVEL 5.3 GIÁOTRÌNHLARAVEL 5.3 - BUỔI A – LÝ THUYẾT I – SCHEMA BUILDER Schema builder ? Schema Class Laravel, giúp Laravel thao tác với b ảng d ữ li ệu nh thêm, sửa, xóa cách dễ dàng khoa học Schema builder cách nói Laravel sử dụng phương thức Class Schema để thêm sửa, xóa bảng cột liệu Tạo CSDL mẫu kết nối với Laravel B1 Vào PHPMyAdmin để tạo CSDL B2 Để cấu hình kết nối CSDL sử dụng cách sau: C1 Cấu hình file database.php nằm thư mục config C2 Cấu hình file env Xây dựng bảng với Schema builder a Phương thức tạo bảng 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ÌNHLARAVEL 5.3 b Phương thức đổi tên bảng 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 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 cột vào bảng table() Cú pháp: Schema::table(tableName, function($table){ $table->string(columnName); }); Ví dụ: 22GIÁO TRÌNHLARAVEL 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 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ÌNHLARAVEL 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 tồn bảng hasTable() Cú pháp: if(Schema::hasTable(tableName)){ // } Ví dụ: if(Schema::hasTable('users')){ // } 24GIÁO TRÌNHLARAVEL 5.3 h Phương thức kiểm tra tồn cột hasColumn() Cú pháp: if(Schema::hasColumn(tableName, columnName)){ // } Ví dụ: if(Schema::hasColumn('users', 'user_name')){ // } II – MIGRATION Migration ? Migration Laravel sử dụng để quản lý Schema cách dễ dàng khoa học Các Schema viết Migration chúng th ực thi cơng vi ệc c Migration chạy Xây dựng CSDL với Migration a Tạo Migration để quản lý Schema C1 Tạo Migration quản lý không kèm bảng liệu CMD: php artisan make:migration create_migrationName_table 25GIÁO TRÌNHLARAVEL 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 liệu CMD: php artisan make:migration create_migrationName_table table=tableName Kết quả: 26GIÁO TRÌNHLARAVEL 5.3 class CreateTest2Table extends Migration { public function up() { Schema::table('test2', function (Blueprint $table) { // }); } public function down() { Schema::table('test2', function (Blueprint $table) { // }); } } C3 Tạo Migration quản lý có kèm bảng cột liệu mẫu CMD: php artisan make:migration create_migrationName_table create=tableName Kết quả: 27GIÁO TRÌNHLARAVEL 5.3 class CreateTest3Table extends Migration { public function up() { Schema::create('test3', function (Blueprint $table) { $table->increments('id'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('test3'); } } b Xây dựng bảng với Schema Migration file public function up() { Schema::create('test3', function (Blueprint $table) { $table->increments('user_id'); $table->string('user_name'); $table->string('user_pass'); $table->text('user_info'); 28GIÁO TRÌNHLARAVEL 5.3 $table->integer('user_lvel'); $table->timestamp('user_create')->nullable(); $table->timestamp('user_update')->nullable(); }); } c Thực thi tệp tin Migration để hoàn thành việc tạo bảng php artisan migrate Một số phương thức Migration a Phương thức thực thi Migration migrate php artisan migrate b Phương thức xóa Migration trước rollback php artisan migrate:rollback c Phương thức xóa, đồng thời tạo lại tất bảng refresh php artisan migrate:refresh d Phương thức hủy tất bảng tạo Migration reset php artisan migtate:reset 29GIÁO TRÌNHLARAVEL 5.3 III – SEEDING Seeding ? Seeding Laravel lớp Seeder giúp khởi tạo liệu mẫu cho bảng liệu cách dễ dàng Các bước sử dụng Seeder để tạo liệu mẫu B1 Tạo file Seeder trùng tên với Migration quản lý bảng liệu php artisan make:seeder UsersTableSeeder B2 Gọi tới file Seeder class DatabaseSeeder $this->call(UsersTableSeeder::class); B3 Chạy Seeder php artisan db:seed B – BÀI TẬP I – BÀI TẬP THỰC HÀNH Xây dựng CSDL users_manager khai báo thông s ố để kết n ối Laravel đến CSDL Xây dựng bảng liệu users có trường thơng tin đây: user_id: increments user_fullname: string user_name: string user_pass: string 30GIÁO TRÌNHLARAVEL 5.3 user_mail: string user_level: integer Thêm ghi mẫu cho bảng liệu users II – BÀI TẬP VỀ NHÀ Xây dựng CSDL vietpro-blog (Project cuối khóa) khai báo thơng s ố đ ể kết n ối Laravel đ ến CSDL Xây dựng bảng vp_user với trường thông tin nư sau: user_id: increments user_name: string user_pass: string user_img: string Xây dựng bảng vp_category với trường thông tin sau: cat_id: increments cat_name: string cat_slug: string Xây dựng bảng vp_post với trường thông tin sau: post_id: increments post_cat: integer post_name: string post_slug: string post_img: string 31GIÁO TRÌNHLARAVEL 5.3 post_conten: text post_create: timestamp nullable post_update: timestamp nullable ... class="footer">footer 13GIÁO TRÌNH LARAVEL 5.3 Ghi đè giao diện Ghi đè giao diện hình thức định nghĩa kh i giao diện khác s dụng vào vị trí giao diện cách triệu g i l i Cú pháp: Định nghĩa kh i giai diện... viewDemo @include('errors.note') III – VALIDATION 17GIÁO TRÌNH LARAVEL 5.3 Validation Validation trình kiểm tra tính hợp lệ thơng tin nh ập vào Form Ch ẳng h ạn nh kiểm tra email hợp lệ, liệu nhập... th i tạo l i tất bảng refresh php artisan migrate:refresh d Phương thức hủy tất bảng tạo Migration reset php artisan migtate:reset 29GIÁO TRÌNH LARAVEL 5.3 III – SEEDING Seeding ? Seeding Laravel