1. Trang chủ
  2. » Giáo án - Bài giảng

Xây dựng website sử dụng framework

126 49 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 126
Dung lượng 2,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Quản lý cấu hình: Một ứng dụng web được thiết kế trong Laravel sẽ chạy trên các môi trường khác nhau, điều đó có nghĩa là sẽ có sự thay đổiliên tục trong cấu hình của nó.. Bài 3: Cấu t

Trang 1

Bài 1: Giới thiệu

Laravel là một framework PHP mã nguồn mở, mạnh mẽ và dễ hiểu Nó tuân theo một mẫu thiết kế model-view-controller Laravel sử dụng lại các

thành phần hiện có của các khung khác nhau để giúp tạo ra một ứng dụng web

Do đó, ứng dụng web được thiết kế có cấu trúc và thực dụng hơn

Laravel cung cấp một tập hợp các chức năng phong phú kết hợp các tínhnăng cơ bản của các framework PHP như CodeIgniter, Yii và các ngôn ngữ lậptrình khác như Ruby on Rails Laravel có một bộ tính năng rất phong phú sẽgiúp tăng tốc độ phát triển web

Nếu bạn đã quen thuộc với Core PHP và Advanced PHP, Laravel sẽ

giúp công việc của bạn dễ dàng hơn Nó tiết kiệm rất nhiều thời gian nếu bạnđang có kế hoạch phát triển một trang web từ đầu Hơn nữa, một trang webđược xây dựng trong Laravel là an toàn và ngăn chặn một số cuộc tấn côngweb

Ưu điểm của Laravel

Khi bạn đang thiết kế một ứng dụng web dựa trên Laravel, nó cung cấpcho bạn những lợi thế sau:

 Ứng dụng web trở nên có khả năng mở rộng hơn, nhờ vào frameworkLaravel

 Tiết kiệm đáng kể thời gian trong việc thiết kế ứng dụng web, vìLaravel sử dụng lại các thành phần từ framework khác trong việc pháttriển ứng dụng web

 Nó bao gồm các không gian tên và giao diện, do đó hữu ích trong việc

tổ chức và quản lý tài nguyên

Composer

Composer là một công cụ bao gồm tất cả các dependencies và thư viện.

Nó cho phép người dùng tạo một dự án liên quan đến framework đã đề cập (vídụ: những dự án được sử dụng trong cài đặt Laravel) Thư viện của bên thứ ba

có thể được cài đặt dễ dàng với sự trợ giúp của composer

Trang 2

Tất cả các dependencies được ghi chú trong tệp composer.json được đặt

trong thư mục nguồn

Artisan

Giao diện dòng lệnh được sử dụng trong Laravel được gọi là Artisan Nó

bao gồm một tập hợp các lệnh hỗ trợ xây dựng một ứng dụng web Các lệnh nàyđược kết hợp từ framework Symphony

Các tính năng của Laravel

Laravel cung cấp các tính năng chính sau đây giúp nó trở thành một lựachọn lý tưởng để thiết kế các ứng dụng web:

Tính mô đun: Laravel cung cấp 20 thư viện và mô-đun tích hợp giúp

tăng cường ứng dụng Mỗi mô-đun được tích hợp với trình quản lý phụthuộc Composer giúp dễ dàng cập nhật

Khả năng kiểm tra: Laravel bao gồm các tính năng và trợ giúp giúp

kiểm tra thông qua các trường hợp thử nghiệm khác nhau Tính năng nàygiúp duy trì mã theo yêu cầu

Định tuyến (Routing): Laravel cung cấp một cách tiếp cận linh hoạt cho người dùng để xác định các routes trong ứng dụng web Định tuyến giúp

mở rộng ứng dụng theo cách tốt hơn và tăng hiệu suất của nó

Quản lý cấu hình: Một ứng dụng web được thiết kế trong Laravel sẽ

chạy trên các môi trường khác nhau, điều đó có nghĩa là sẽ có sự thay đổiliên tục trong cấu hình của nó Laravel cung cấp một cách tiếp cận nhấtquán để xử lý cấu hình một cách hiệu quả

Trình tạo truy vấn và ORM: Laravel kết hợp một trình xây dựng truy

vấn giúp truy vấn cơ sở dữ liệu bằng các phương thức chuỗi đơn giản

khác nhau Nó cung cấp ORM (Object Relative Mapper) và triển khai ActiveRecord được gọi là Eloquent.

Xây dựng lược đồ (Schema Builder): Schema Builder duy trì các định

nghĩa và lược đồ cơ sở dữ liệu trong mã PHP Nó cũng duy trì theo dõicác thay đổi liên quan đến di chuyển cơ sở dữ liệu

Công cụ template: Laravel sử dụng công cụ Blade Template, một ngôn

ngữ template được sử dụng để thiết kế các khối và bố cục phân cấp vớicác khối được xác định trước bao gồm nội dung động

E-mail: Laravel bao gồm một lớp mail giúp gửi thư có nội dung phong

phú và tệp đính kèm từ ứng dụng web

Trang 3

Xác thực: Xác thực người dùng là một tính năng phổ biến trong các ứng

dụng web Laravel giảm bớt việc thiết kế xác thực vì nó bao gồm các tính

năng như đăng ký, quên mật khẩu và gửi lời nhắc mật khẩu.

Redis: Laravel sử dụng Redis để kết nối với một phiên hiện có và bộ

đệm cho mục đích chung Redis tương tác với phiên trực tiếp

Hàng đợi: Laravel bao gồm các dịch vụ xếp hàng như gửi email số lượng lớn hoặc một công việc Cron được chỉ định Các hàng đợi này giúp hoàn

thành các nhiệm vụ một cách dễ dàng hơn mà không phải chờ đợi nhiệm

vụ trước đó được hoàn thành

Event và Command Bus: Laravel 5.1 bao gồm Command Bus giúp

thực thi các lệnh và gửi các sự kiện một cách đơn giản Các lệnh trongLaravel hoạt động theo vòng đời của ứng dụng

Trang 4

Bài 2: Cài đặt Laravel

Để quản lý các dependencies, Laravel sử dụng composer Hãy chắc chắn rằng bạn đã cài đặt composer trên hệ thống của mình trước khi cài đặt Laravel.

Trong bài này, bạn sẽ được hướng dẫn quá trình cài đặt của Laravel

Bạn sẽ phải làm theo các bước được đưa ra dưới đây để cài đặt Laravelvào hệ thống:

Bước 1 - Truy cập URL sau và tải xuống trình soạn thảo để cài đặt nó trên hệ

mục htdocs, mở command và nhập lệnh sau:

composer create-project prefer-dist laravel/laravel test

Đầu ra của lệnh như dưới đây:

Trang 5

Framework Laravel có thể được cài đặt trực tiếp với nhánh phát triển (develop)bao gồm framework mới nhất.

Bước 4 - Lệnh trên sẽ cài đặt Laravel trong thư mục hiện tại Bắt đầu dịch vụ

Laravel bằng cách thực hiện lệnh sau

php artisan serve

Bước 5 - Sau khi thực hiện lệnh trên, bạn sẽ thấy một màn hình như hình bên

dưới:

Trang 6

Bước 6 - Sao chép URL được gạch chân màu xám trong ảnh chụp màn hình ở

trên và mở URL đó trong trình duyệt Nếu bạn thấy màn hình sau, nó có nghĩa

là Laravel đã được cài đặt thành công

Trang 7

Bài 3: Cấu trúc ứng dụng Laravel

Cấu trúc ứng dụng trong Laravel về cơ bản là cấu trúc của các thư mục,thư mục con và tệp có trong một dự án Khi chúng ta tạo một dự án trongLaravel, chúng ta có cấu trúc ứng dụng như trong hình ở đây

Ảnh chụp nhanh được hiển thị ở đây đề cập đến thư mục gốc của Laravel,

cụ thể là dự án laravel Nó bao gồm các thư mục con và tập tin khác nhau Việcphân tích các thư mục và tệp, cùng với các chức năng của chúng được đưa radưới đây:

Trang 8

Nó là thư mục ứng dụng (application) và bao gồm toàn bộ mã nguồn của

dự án Nó chứa các sự kiện (events), ngoại lệ (exception) và khai báo phần mềmtrung gian (middleware) Thư mục ứng dụng bao gồm các thư mục phụ khácnhau như được giải thích bên dưới:

Console

Console chứa tệp Kernel.php định nghĩa các câu lệnh trên artisan

Exceptions

Thư mục này chứa tất cả các phương thức cần thiết để xử lý các trường

hợp ngoại lệ Nó cũng chứa tập tin handle.php xử lý tất cả các ngoại lệ.

Http

Thư mục http có các thư mục con cho controllers, middleware

Thư mục con Middleware bao gồm cơ chế phần mềm trung gian, bao

gồm cơ chế lọc và giao tiếp giữa response và request

Thư mục con controllers chứa các controller của project

Providers

Thư mục này bao gồm tất cả các Providers dịch vụ cần thiết để đăng kýcác sự kiện cho các máy chủ core và cấu hình ứng dụng Laravel

Bootstrap

Thư mục này chứa tất cả các tập lệnh bootstrap của ứng dụng Nó chứa

một thư mục con cụ thể là cache, bao gồm tất cả các tệp được liên kết để lưu trữ ứng dụng web Bạn cũng có thể tìm thấy tệp app.php, nó khởi tạo các tập lệnh

cần thiết cho bootstrap

Config

Thư mục config bao gồm các cấu hình khác nhau và các tham số liên

quan cần thiết cho hoạt động trơn tru của ứng dụng Laravel Các tập tin khácnhau trong thư mục config được hiển thị trong hình ảnh dưới đây Các tên filehoạt động theo chức năng liên quan đến chúng

Trang 9

Như tên cho thấy, thư mục này bao gồm các tham số khác nhau cho cácchức năng cơ sở dữ liệu Nó bao gồm ba thư mục con như được đưa ra dướiđây:

Seeds - Chứa các lớp được sử dụng để tạo dữ liệu thêm vào CSDL

Migrations - Thư mục này chứa các file tạo và chỉnh sửa dữ liệu

Factories - Thư mục này được sử dụng để tạo số lượng lớn các bản

ghi dữ liệu

Public

Đây là thư mục gốc giúp khởi tạo ứng dụng Laravel Nó bao gồm các tệp

và thư mục sau:

.htaccess - Tập tin này cung cấp cấu hình máy chủ.

javascript và css - Những tệp này được coi là assets được sử dụng để

chứa các file js và css

index.php - Tập tin này là cần thiết để khởi tạo một ứng dụng web.

Trang 10

Thư mục Resources chứa các tệp giúp cải thiện ứng dụng web Các thưmục con có trong thư mục này và mục đích của chúng được giải thích bên dưới:

js - Thư mục các file javascript cho ứng dụng.

scss - Thư mục chứa các file css cho ứng dụng.

lang - Thư mục này bao gồm cấu hình vị trí địa lý hoặc ngôn ngữ.

views - Views là các tệp HTML hoặc templates tương tác với người

dùng và đóng vai trò chính trong kiến trúc MVC

Quan sát rằng thư mục Resources sẽ được làm phẳng thay vì có một thưmục assets

routes

Thư mục routes, chứa tất cả các điều khiển route (đường dẫn) trongproject Chứa các file route sẵn có: web.php, channels.php, api.php, vàconsole.php

Trang 11

Đây là thư mục lưu trữ tất cả các bản ghi và các tệp cần thiết khi dự ánLaravel đang chạy Các thư mục con có trong thư mục này và mục đích củachúng được đưa ra dưới đây:

app - Thư mục này chứa các tệp được gọi liên tiếp.

framework - Nó chứa các phiên, bộ đệm và các khung nhìn (views)

và được gọi thường xuyên

Logs - Tất cả các trường hợp ngoại lệ và nhật ký lỗi được theo dõi

trong thư mục con này

Ngoài các tệp được đề cập ở trên, Laravel còn bao gồm một số tệp khácđóng vai trò chính trong các chức năng khác nhau như cấu hình GitHub, các gói

và các thư viện của bên thứ ba

Các tập tin trong cấu trúc ứng dụng được hiển thị bên dưới:

Trang 12

Bài 4: Cấu hình Laravel

Trong bài trước, chúng ta đã biết các tệp cấu hình cơ bản của Laravelđược đặt trong thư mục cấu hình Trong bài này, chúng ta hãy thảo luận về cácthể loại có trong cấu hình

Cấu hình môi trường

Các biến môi trường là những biến cung cấp danh sách các dịch vụ web

cho ứng dụng web Tất cả các biến môi trường được khai báo trong tệp env bao

gồm các tham số cần thiết để khởi tạo cấu hình

Theo mặc định, tệp env bao gồm các tham số sau:

APP_ENV = local

APP_DEBUG = true

APP_KEY = base64:ZPt2wmKE/X4eEhrzJU6XX4R93rCwYG8E2f8QUA7kGK8 =

APP_URL = http://localhost

Trang 13

Không nên cố định tệp env đối với nguồn ứng dụng, vì mỗi nhà phát

triển hoặc người dùng có một số cấu hình môi trường riêng cho ứngdụng web

 Đối với các tùy chọn sao lưu, nhóm phát triển nên sử dụng tệp

.env.example, nó sẽ chứa các cấu hình mặc định.

Truy xuất các biến môi trường

Tất cả các biến môi trường được khai báo trong tệp env có thể được truy cập bởi các hàm env-helper sẽ gọi tham số tương ứng Các biến này cũng được liệt kê thành biến toàn cục $ _ENV mỗi khi ứng dụng nhận được yêu cầu từ

phía người dùng Bạn có thể truy cập biến môi trường như hình bên dưới

-'env' => env('APP_ENV', 'production'),

Các hàm env-helper được gọi trong tệp app.php có trong thư mục cấu

hình Ví dụ đã cho ở trên đang gọi tham số cục bộ cơ bản

Truy cập các giá trị cấu hình

Trang 14

Bạn có thể dễ dàng truy cập các giá trị cấu hình ở bất cứ đâu trong ứngdụng bằng chức năng trợ giúp cấu hình toàn cục Trong trường hợp nếu các giátrị cấu hình không được khởi tạo, các giá trị mặc định được trả về.

Ví dụ: để đặt múi giờ mặc định, đoạn mã sau được sử dụng

Đôi khi bạn có thể cần cập nhật một số giá trị cấu hình hoặc thực hiện bảo

trì trên trang web của mình Trong những trường hợp như vậy, giữ nó trong chế

độ bảo trì Các ứng dụng web như vậy được giữ trong chế độ bảo trì thông qua một ngoại lệ có tên MaintenanceModeException với mã trạng thái 503.

Bạn có thể kích hoạt chế độ bảo trì trên ứng dụng web Laravel của mìnhbằng lệnh sau:

php artisan down

Trang 15

Ảnh chụp màn hình sau đây cho thấy ứng dụng web sẽ hiển thị khi nó bịngừng hoạt động

Khi bạn hoàn thành công việc cập nhật và bảo trì khác, bạn có thể tắt chế

độ bảo trì trên ứng dụng web của mình bằng lệnh sau

php artisan up

Trang 16

Bây giờ, bạn có thể thấy rằng trang web hiển thị đầu ra với chức năngphù hợp và chỉ ra rằng chế độ bảo trì hiện đã bị xóa như hiển thị bên dưới

Trang 17

Bài 5: Định tuyến (Routing)

Trong Laravel, tất cả các yêu cầu (request) được ánh xạ với sự trợ giúpcủa các routes Định tuyến cơ bản định tuyến yêu cầu đến các controller liênquan Bài này thảo luận về định tuyến trong Laravel

Định tuyến trong Laravel bao gồm các loại sau:

 Định tuyến cơ bản

 Định tuyến các tham số

 Các định tuyến đặt tên

Định tuyến cơ bản

Tất cả các định tuyến ứng dụng được đăng ký trong tệp routes/web.php.

Tệp này thông báo cho Laravel về các URI mà nó sẽ phản hồi và controllerđược liên kết sẽ cung cấp cho nó một lời gọi cụ thể Định tuyến mẫu cho trang

welcome có thể được hiển thị trong ảnh chụp màn hình được cung cấp bên

Trang 18

resources/view/welcome.blade.php

<!DOCTYPEhtml>

<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">

<head>

<metacharset="utf-8">

<metaname="viewport"content="width=device-width, initial-scale=1"> <title>Laravel</title>

Trang 19

<divclass="flex-center position-ref full-height">

<divclass="content">

<divclass="title m-b-md">

Trang 20

Bây giờ chúng ta cúng tìm hiểu các bước liên quan đến cơ chế định tuyếnmột cách chi tiết:

Bước 1 - Đầu tiên, chúng ta nên thực thi URL gốc của ứng dụng.

Bước 2 - Bây giờ, URL được thực thi phải khớp với phương thức thích hợp trong tệp web.php Trong trường hợp hiện tại, nó phải phù hợp với phương thức

và URL gốc (’/') Điều này sẽ thực hiện các chức năng liên quan.

Bước 3 - Hàm gọi file template resources/views/welcome.blade.php Tiếp theo, hàm gọi hàm view() với đối số ‘welcome', không sử dụng blade.php.

Nó sẽ tạo ra đầu ra HTML như trong hình bên dưới:

Định tuyến các tham số

Trang 21

Đôi khi trong ứng dụng web, bạn có thể cần phải lấy các tham số được

truyền bằng URL Đối với điều này, bạn nên sửa đổi mã trong tập tin web.php.

Bạn có thể nắm bắt các tham số trong tệp web.php theo hai cách như

được thảo luận ở đây:

Các tham số bắt buộc

Các tham số này là những tham số cần được bắt buộc để định tuyến ứngdụng web Ví dụ: để lấy số nhận dạng (ID) người dùng từ URL có thể được thựchiện bằng cách xác định các tham số định tuyến như dưới đây:

Route::get('ID/{id}',function($id) {

echo 'ID: '.$id;

});

Các tham số tùy chọn

Đôi khi các nhà phát triển có thể tạo ra các tham số là tùy chọn và có thể

bao gồm dấu ? sau tên tham số trong URL Điều quan trọng là giữ giá trị mặc

định được đề cập dưới dạng tên tham số Quan sát ví dụ sau đây cho thấy cáchxác định tham số tùy chọn:

Route::get('user/{name?}', function ($name = 'LearnSkill') { return $name;});

Ví dụ trên kiểm tra xem giá trị có khớp với LearnSkill hay không và

định tuyến đến URL được xác định

Các định tuyến đặt tên

Các định tuyến đặt tên cho phép một cách thuận tiện để tạo các routes.Chuỗi các định tuyến có thể được chỉ định bằng cách sử dụng phương thứcname vào định nghĩa routes Đoạn mã sau đây cho thấy một ví dụ để tạo cácroutes được đặt tên bằng controller

Route::get('user/profile', 'UserController@showProfile')->name('profile');

UserController sẽ gọi hàm showProfile với tham số là profile Các tham

số sử dụng phương thức name vào định nghĩa routes.

Trang 22

Bài 6: Middleware

Middleware hoạt động như một cầu nối giữa một yêu cầu (request) và

một phản hồi (response) Nó là một loại cơ chế lọc Bài này giải thích cho bạn

cơ chế phần mềm trung gian trong Laravel

Laravel có một middleware để xác minh xem người dùng của ứng dụng

có được xác thực hay không Nếu người dùng được xác thực, nó sẽ chuyểnhướng đến trang chủ, nếu không, nó sẽ chuyển hướng đến trang đăng nhập

Middleware có thể được tạo bằng cách thực hiện lệnh sau:

php artisan make:middleware <tên-middleware>

Thay thế <tên-middleware> bằng tên của middleware của bạn middleware bạn tạo có thể được nhìn thấy trong thư mục app/Http/Middleware.

Ví dụ

Quan sát ví dụ sau để hiểu cơ chế middleware

Bước 1 - Bây giờ chúng ta hãy tạo AgeMiddleware Để tạo nó, chúng ta cần

thực hiện lệnh sau:

php artisan make:middleware AgeMiddleware

Bước 2 - Sau khi thực hiện thành công lệnh, bạn sẽ nhận được output như sau:

Trang 23

Bước 3 - AgeMiddleware sẽ được tạo tại app/Http/Middleware Các tập tin

mới được tạo sẽ có mã sau đây đã được tạo cho bạn

và $routeMiddleware Thuộc tính $middleware được sử dụng để đăng ký Global Middleware và thuộc tính $routeMiddleware được sử dụng để đăng

ký route cho middleware cụ thể

Để đăng ký Global Middleware , hãy liệt kê lớp ở cuối thuộc tính

Trang 24

];

Ví dụ

Chúng ta đã tạo AgeMiddleware trong ví dụ trước Bây giờ chúng ta có

thể đăng ký nó trong thuộc tính middleware cụ thể Mã cho đăng ký đó đượchiển thị dưới đây

Sau đây là mã cho app/Http/Kernel.php

Trang 25

'auth.basic' =>

\Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,

];

Các Tham số middleware

Chúng ta cũng có thể truyền tham số với Middleware Ví dụ: nếu ứngdụng của bạn có các vai trò khác nhau như người dùng, quản trị viên, siêu quảntrị viên, v.v và bạn muốn xác thực hành động dựa trên vai trò, điều này có thểđạt được bằng cách chuyển tham số với middleware Middleware mà chúng ta

tạo chứa hàm sau đây và chúng ta có thể truyền đối số sau đối số $next.

return $next($request);

}

Ví dụ

Bước 1 - Tạo RoleMiddleware bằng cách thực hiện lệnh sau:

php artisan make:middleware RoleMiddleware

Bước 2 - Sau khi thực hiện thành công, bạn sẽ nhận được output sau

Trang 26

Bước 3 - Thêm mã sau đây vào phương thức xử lý của ứng dụng RoleMiddleware tại app/Http/Middleware/RoleMiddleware.php.

echo "Role: ".$role;

];

Trang 27

Bước 5: Thực thi lệnh sau để tạo TestController

php artisan make:controller TestController

Bước 6: Sau khi thực thi thành công bước 5, bạn sẽ nhận được output như sau:

Bước 7: Copy những dòng lệnh sau vào file app/Http/TestController.php

class TestController extends Controller {

public function index() {

echo "<br>Test Controller." ;

Trang 28

Terminable Middleware có thể thực hiện một số tác vụ sau khi phản hồi

đã được gửi tới trình duyệt Điều này có thể được thực hiện bằng cách tạo ra

một Middleware với phương thức terminate trong Middleware Terminable Middleware nên được đăng ký với Global Middleware Phương thức terminate

sẽ nhận được hai đối số $request và $response Phương thức terminate có thể

được tạo như hiển thị trong đoạn mã sau

Ví dụ

Bước 1 - Tạo TerminatingMiddleware bằng cách thực hiện lệnh bên dưới.

php artisan make:middleware TerminateMiddleware

Bước 2 - Bước 1 sẽ tạo ra output như sau:

Trang 29

Bước 3: Copy đoạn mã sau vào TerminateMiddleware vừa tạo tại app/Http/Middleware/TerminateMiddleware.php

<?php

namespace App\Http\Middleware;

use Closure;

class TerminateMiddleware {

public function handle($request, Closure $next) {

echo "Executing statements of handle method of TerminateMiddleware." ;

return $next($request);

}

public function terminate($request, $response) {

echo "<br>Executing statements of terminate method of TerminateMiddleware." ;

}

}

Bước 4: Đăng ký TerminateMiddleware tại file app\Http\Kernel.php

Trang 30

php artisan make:controller ABCController

Bước 6 − Sau khi thực thi thành công, bạn sẽ nhận được output như sau:

Bước 7: Copy những dòng lệnh sau vào file app/Http/ABCController.php

class ABCController extends Controller {

public function index() {

echo "<br>ABC Controller." ;

Trang 31

Bài 7: Request trong Laravel

Trong bài này, bạn sẽ tìm hiểu chi tiết về Requests trong Laravel.

Lấy Request URI

Phương thức "path" của người dùng được sử dụng để lấy URI được yêu cầu Phương thức is được sử dụng để truy xuất URI được yêu cầu khớp với mẫu

cụ thể được chỉ định trong đối số của phương thức Để có được URL đầy đủ,

chúng ta có thể sử dụng phương thức url.

Ví dụ

Trang 32

Bước 1 - Thực hiện lệnh dưới đây để tạo controller mới gọi là UriControll.

php artisan make:controller UriController

Bước 2 - Sau khi tạo controller, thêm đoạn mã sau vào tệp app/Http/Controllers/UriController.php.

$pattern = $request->is( 'foo/*' );

echo 'is Method: ' $pattern;

Bước 3 - Thêm dòng sau vào file routes/web.php.

Route::get('/foo/bar','UriController@index');

Trang 33

Bước 4 - Truy cập URL sau.

http://localhost:8000/foo/bar

Bước 5 - Đầu ra sẽ xuất hiện như hình ảnh sau đây.

Lấy dữ liệu đầu vào (input)

Các giá trị đầu vào có thể lấy dễ dàng trong Laravel Laravel sẽ nhận giá

trị đầu vào cho cả hai phương thức "post" và "get" giống nhau Có hai cách

chúng ta có thể lấy các giá trị đầu vào

 Sử dụng phương thức input()

 Sử dụng các thuộc tính của thể hiện Request

Sử dụng phương thức input()

Phương thức input() nhận một đối số (tên của field trong form) Ví dụ:

nếu form chứa field username thì chúng ta có thể truy cập nó theo cách sau

$name = $request->input('username');

Sử dụng các thuộc tính của thể hiện Request

Giống như phương thức input(), chúng ta có thể lấy thuộc tính username

trực tiếp từ thể hiện request

$request->username

Ví dụ

Quan sát ví dụ sau để hiểu thêm về Request

Trang 34

Bước 1 - Tạo form Đăng ký, nơi người dùng có thể tự đăng ký và lưu trữ form tại resources/views/register.php.

<form action = "/user/register" method = "post" >

<input type = "hidden" name = "_token" value = " <?php echo csrf_token() ?> " >

<td colspan = "2" align = "center" >

<input type = "submit" value = "Register" />

Bước 2 - Thực hiện lệnh dưới đây để tạo controller UserRegistration.

php artisan make:controller UserRegistration

app/Http/Controllers/UserRegistration.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

Trang 35

class UserRegistration extends Controller

{

public function postRegister( Request $request) {

//Nhận field đầu vào name

$name = $request->input( 'name' );

echo 'Name: ' $name;

Bước 5 - Thêm dòng sau vào tệp routes/web.php.

Route::get( '/register' , function () {

return view( 'register' );

});

Route::post( '/user/register' ,array( 'uses' => 'UserRegistration@postRegister' ));

Bước 6 - Truy cập URL sau và bạn sẽ thấy form đăng ký như trong hình bên dưới Nhập chi tiết đăng ký và nhấp vào register, bạn sẽ thấy trên trang thứ hai

mà chúng ta đã truy xuất và hiển thị chi tiết thông tin người dùng đăng ký

http://localhost:8000/register

Bước 7 - Đầu ra sẽ trông giống như được hiển thị đây.

Trang 36

Bài 8: Response trong laravel

Ứng dụng web phản hồi (response) yêu cầu của người dùng theo nhiềucách tùy thuộc vào các tham số Bài này giải thích cho bạn chi tiết về các phảnhồi trong các ứng dụng web của Laravel

Trang 37

Response cơ bản

Laravel cung cấp một số cách khác nhau để trả lời phản hồi Phản hồi cóthể được gửi từ route hoặc từ controller Response cơ bản có thể được gửi làchuỗi đơn giản như được hiển thị trong code mẫu bên dưới Chuỗi này sẽ được

tự động chuyển đổi thành phản hồi HTTP thích hợp

Ví dụ

Bước 1 - Thêm mã sau vào file routes/web.php.

Route::get('/basic_response', function () {

return 'Hello World';

Phản hồi có thể được gắn vào các tiêu đề bằng phương thức header().

Chúng tôi cũng có thể đính kèm loạt header như trong code mẫu bên dưới

return response($content,$status)

->header( 'Content-Type' , $type)

->header( 'X-Header-One' , 'Header Value' )

->header( 'X-Header-Two' , 'Header Value' );

Ví dụ

Quan sát ví dụ sau để hiểu thêm về Response

Bước 1 - Thêm mã sau vào tệp routes/web.php.

Trang 38

return response("Hello", 200)->header('Content-Type', 'text/html');

Phương thức withcookie() được sử dụng để đính kèm cookie Cookie

được tạo bằng phương thức này có thể được đính kèm bằng cách gọi phương

thức withcookie() với thể hiện response Theo mặc định, tất cả các cookie được

tạo bởi Laravel đều được mã hóa và ký để client không thể sửa đổi hoặc đọcchúng

Ví dụ

Quan sát ví dụ sau để hiểu thêm về cách đính kèm cookie:

Bước 1 - Thêm mã sau vào tệp routes/web.php.

Route::get('/cookie',function() {

return response("Hello", 200) -> header('Content-Type', 'text/html') ->withcookie('name','hieulv68');

});

Bước 2 - Truy cập URL sau để kiểm tra.

Trang 39

Bước 3 - Đầu ra sẽ xuất hiện như trong hình ảnh sau đây.

Phản hồi JSON

Phản hồi JSON có thể được gửi bằng phương thức json Phương thức này

sẽ tự động thiết lập Content-Type header thành application/json Phương thức

json sẽ tự động chuyển đổi mảng thành phản hồi json thích hợp

Ví dụ

Quan sát ví dụ sau để hiểu thêm về Phản hồi JSON

Bước 1 - Thêm dòng sau vào tệp routes/web.php.

Route::get('json',function() {

return response()->json(['name' => 'hieulv68', 'job' => 'Giảng viên CNTT']);});

Bước 2 - Truy cập URL sau để kiểm tra phản hồi json.

http://localhost:8000/json

Bước 3 - Đầu ra sẽ xuất hiện như trong hình ảnh sau đây.

Trang 40

Bài 9: Controllers

Trong framework MVC, chữ 'C' là viết tắt của Controller Nó hoạt động như một trao đổi trực tiếp giữa Views và Models Trong bài này, bạn sẽ tìm hiểu về Controller trong Laravel.

Tạo một controller

Mở dấu nhắc lệnh hoặc terminal dựa trên hệ điều hành bạn đang sử dụng

và nhập lệnh sau để tạo controller bằng Artisan CLI (Command Line Interface).php artisan make:controller <controller-name>

Thay thế <controller-name> bằng tên của controller bạn muốn tạo Hàm

tạo đã tạo có thể được nhìn thấy tại app/Http/Controllers.

Bạn sẽ thấy rằng một số code cơ bản đã được thực hiện cho bạn và bạn cóthể thêm code tùy chỉnh của mình Controller được tạo có thể được gọi từ

routes/web.php theo cú pháp sau.

Cú pháp

Route::get(‘base URI’,’controller@method’);

Ví dụ

Bước 1 - Thực hiện lệnh sau để tạo UserContoder.

php artisan make:controller UserController

Bước 2 - Sau khi thực hiện thành công, bạn sẽ nhận được output sau.

Ngày đăng: 03/03/2021, 10:08

TỪ KHÓA LIÊN QUAN

w