Request
Lớp Request
của SkillDo dựa trên lớp Illuminate\Http\Request
của Laravel cung cấp một đối tượng để tương tác với yêu cầu HTTP hiện tại đang được ứng dụng của bạn xử lý cũng như truy xuất dữ liệu đầu vào, cookie và file đã được gửi cùng với yêu cầu.
Tương tác với Request
Sử dụng Request
Trong ajax callback sẽ tự động nhận được request là tham số đầu tiên và bạn cần thêm gợi ý lớp SkillDo\Http\Request
để sử dụng
#[NoReturn]
function ajaxCallback(SkillDo\Http\Request $request, $model): void
{
if($request->isMethod('post')) {
response()->success('thành công!');
}
response()->error('không thành công');
}
Hoặc
use SkillDo\Http\Request;
#[NoReturn]
function ajaxCallback(Request $request, $model): void
{
if($request->isMethod('post')) {
response()->success('thành công!');
}
response()->error('không thành công');
}
Hoặc bạn cũng có thể gọi request
bằng phương thức toàn cục: request()
request()->input('name')
Path, Host and Method
Request Path
Phương thức path
trả về thông tin đường dẫn của yêu cầu. Vì vậy, nếu yêu cầu đến được nhắm mục tiêu tại http://example.com/foo/bar
, phương thức đường dẫn sẽ trả về foo/bar
:
$uri = request()->path();
Kiểm tra đường dẫn request
Phương thức is
cho phép bạn xác minh rằng đường dẫn yêu cầu đến khớp với một mẫu nhất định.
Bạn có thể sử dụng ký tự *
làm ký tự đại diện khi sử dụng phương pháp này:
if (request()->is('admin/*')) {
// ...
}
Truy xuất Request URL
Để truy xuất URL đầy đủ cho Request, bạn có thể sử dụng phương thức url
hoặc fullUrl
.
Phương thức url
sẽ trả về URL không có chuỗi truy vấn, trong khi phương thức fullUrl
bao gồm chuỗi truy vấn:
$url = request()->url();
$urlWithQueryString = request()->fullUrl();
Nếu bạn muốn nối thêm dữ liệu query string vào URL hiện tại, bạn có thể gọi phương thức fullUrlWithQuery
.
Phương thức này hợp nhất mảng các biến chuỗi truy vấn đã cho với chuỗi truy vấn hiện tại:
request()->fullUrlWithQuery(['type' => 'phone']);
Nếu bạn muốn lấy URL hiện tại mà không có tham số query string nhất định, bạn có thể sử dụng phương thức fullUrlWithoutQuery
:
request()->fullUrlWithoutQuery(['type']);
Truy xuất Request Host
Bạn có thể truy xuất "host" của Request thông qua các phương thức host
, httpHost
và schemeAndHttpHost
:
$request->host();
$request->httpHost();
$request->schemeAndHttpHost();
Truy xuất Request Method
Phương thức method
sẽ trả về loại HTTP Request. Bạn có thể sử dụng phương thức isMethod
để xác minh loại HTTP khớp với một loại nhất định:
$method = $request->method();
if ($request->isMethod('post')) {
// ...
}
Request Headers
Bạn có thể lấy request header từ SkillDo\Http\Request
bằng cách sử dụng phương thức header
. Nếu header không có trong request, null
sẽ được trả về. Tuy nhiên, phương thức header
chấp nhận một tham số thứ hai tùy chọn sẽ được trả về nếu header không có trong request:
$value = $request->header('X-Header-Name');
$value = $request->header('X-Header-Name', 'default');
Phương thức hasHeader
có thể được sử dụng để xác định xem request có chứa một header cụ thể hay không:
if ($request->hasHeader('X-Header-Name')) {
// ...
}
Bạn có thể sử dụng phương thức bearerToken
để lấy một mã thông báo từ header Authorization
. Nếu không có header nào như vậy, một chuỗi trống sẽ được trả về:
$token = $request->bearerToken();