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();