Làm cách nào để lấy dữ liệu từ yêu cầu trong Symfony?

Lớp

$urlWithQueryString = $request->fullUrl();

2 của Laravel cung cấp một cách hướng đố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 đầu vào, cookie và tệp đã được gửi cùng với yêu cầu

Tương tác với yêu cầu

Truy cập Yêu cầu

Để có được một thể hiện của yêu cầu HTTP hiện tại thông qua phép nội xạ phụ thuộc, bạn nên nhập gợi ý lớp

$urlWithQueryString = $request->fullUrl();

2 trên phương thức đóng tuyến hoặc bộ điều khiển của bạn. Phiên bản yêu cầu đến sẽ tự động được đưa vào bởi bộ chứa dịch vụ Laravel

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

Như đã đề cập, bạn cũng có thể gõ gợi ý lớp

$urlWithQueryString = $request->fullUrl();

2 khi đóng tuyến đường. Bộ chứa dịch vụ sẽ tự động đưa yêu cầu đến vào phần đóng khi nó được thực thi

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

Thông số định tuyến & tiêm phụ thuộc

Nếu phương thức điều khiển của bạn cũng đang mong đợi đầu vào từ một tham số tuyến đường, bạn nên liệt kê các tham số tuyến đường của mình sau các phụ thuộc khác của bạn. Ví dụ: nếu tuyến đường của bạn được xác định như vậy

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

Bạn vẫn có thể nhập gợi ý

$urlWithQueryString = $request->fullUrl();

2 và truy cập tham số tuyến đường

$urlWithQueryString = $request->fullUrl();

6 của mình bằng cách xác định phương thức điều khiển của bạn như sau

________số 8

Yêu cầu Đường dẫn, Máy chủ và Phương thức

Phiên bản

$urlWithQueryString = $request->fullUrl();

2 cung cấp nhiều phương thức để kiểm tra yêu cầu HTTP đến và mở rộng lớp

$urlWithQueryString = $request->fullUrl();

8. Chúng ta sẽ thảo luận về một số phương pháp quan trọng nhất dưới đây

Truy xuất đường dẫn yêu cầu

Phương thức

$urlWithQueryString = $request->fullUrl();

9 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 vào

$urlWithQueryString = $request->fullUrl();

20, phương thức

$urlWithQueryString = $request->fullUrl();

9 sẽ trả về

$urlWithQueryString = $request->fullUrl();

22

Kiểm tra đường dẫn yêu cầu/tuyến đường

Phương thức

$urlWithQueryString = $request->fullUrl();

23 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ự

$urlWithQueryString = $request->fullUrl();

24 làm ký tự đại diện khi sử dụng phương pháp này

$urlWithQueryString = $request->fullUrl();

7

Sử dụng phương pháp

$urlWithQueryString = $request->fullUrl();

25, bạn có thể xác định xem yêu cầu đến có khớp với tuyến đường đã đặt tên hay không

$urlWithQueryString = $request->fullUrl();

9

Truy xuất URL yêu cầu

Để truy xuất URL đầy đủ cho yêu cầu đến, bạn có thể sử dụng phương pháp

$urlWithQueryString = $request->fullUrl();

26 hoặc

$urlWithQueryString = $request->fullUrl();

27. Phương thức

$urlWithQueryString = $request->fullUrl();

26 sẽ trả về URL không có chuỗi truy vấn, trong khi phương thức

$urlWithQueryString = $request->fullUrl();

27 bao gồm chuỗi truy vấn

$urlWithQueryString = $request->fullUrl();

Nếu bạn muốn nối thêm dữ liệu chuỗi truy vấn vào URL hiện tại, bạn có thể gọi phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

50. Phương thức này hợp nhất mảng biến chuỗi truy vấn đã cho với chuỗi truy vấn hiện tại

$urlWithQueryString = $request->fullUrl();

2

Truy xuất máy chủ yêu cầu

Bạn có thể truy xuất "máy chủ" của yêu cầu đến thông qua các phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

51,

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

52 và

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

53

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

5

Truy xuất phương thức yêu cầu

Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

54 sẽ trả về động từ HTTP cho yêu cầu. Bạn có thể sử dụng phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

55 để xác minh rằng động từ HTTP khớp với một chuỗi đã cho

$urlWithQueryString = $request->fullUrl();

3

Tiêu đề yêu cầu

Bạn có thể truy xuất tiêu đề yêu cầu từ phiên bản

$urlWithQueryString = $request->fullUrl();

2 bằng phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

57. Nếu tiêu đề không có trong yêu cầu,

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

58 sẽ được trả lại. Tuy nhiên, phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

57 chấp nhận một đối số thứ hai tùy chọn sẽ được trả về nếu tiêu đề không có trong yêu cầu

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

0

Phương thức

$urlWithQueryString = $request->fullUrl();

30 có thể được sử dụng để xác định xem yêu cầu có chứa tiêu đề đã cho hay không

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

1

Để thuận tiện, phương pháp

$urlWithQueryString = $request->fullUrl();

31 có thể được sử dụng để truy xuất mã thông báo mang từ tiêu đề

$urlWithQueryString = $request->fullUrl();

32. Nếu không có tiêu đề như vậy, một chuỗi rỗng sẽ được trả về

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

2

Yêu cầu địa chỉ IP

Phương thức

$urlWithQueryString = $request->fullUrl();

33 có thể được sử dụng để truy xuất địa chỉ IP của ứng dụng khách đã gửi yêu cầu tới ứng dụng của bạn

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

3

Đàm phán nội dung

Laravel cung cấp một số phương thức để kiểm tra các loại nội dung được yêu cầu của yêu cầu đến thông qua tiêu đề

$urlWithQueryString = $request->fullUrl();

34. Đầu tiên, phương thức

$urlWithQueryString = $request->fullUrl();

35 sẽ trả về một mảng chứa tất cả các loại nội dung được yêu cầu chấp nhận

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

4

Phương thức

$urlWithQueryString = $request->fullUrl();

36 chấp nhận một mảng các loại nội dung và trả về

$urlWithQueryString = $request->fullUrl();

37 nếu bất kỳ loại nội dung nào được yêu cầu chấp nhận. Nếu không,

$urlWithQueryString = $request->fullUrl();

38 sẽ được trả lại

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

5

Bạn có thể sử dụng phương pháp

$urlWithQueryString = $request->fullUrl();

39 để xác định loại nội dung nào trong số một mảng các loại nội dung nhất định được yêu cầu ưa thích nhất. Nếu không có loại nội dung nào được cung cấp được yêu cầu chấp nhận, thì

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

58 sẽ được trả lại

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

6

Vì nhiều ứng dụng chỉ phục vụ HTML hoặc JSON, nên bạn có thể sử dụng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

01 để nhanh chóng xác định xem yêu cầu đến có mong đợi phản hồi JSON hay không

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

7

Yêu cầu PSR-7

Tiêu chuẩn PSR-7 chỉ định các giao diện cho các thông báo HTTP, bao gồm các yêu cầu và phản hồi. Nếu bạn muốn lấy một phiên bản của yêu cầu PSR-7 thay vì yêu cầu của Laravel, trước tiên bạn cần cài đặt một vài thư viện. Laravel sử dụng thành phần Symfony HTTP Message Bridge để chuyển đổi các yêu cầu và phản hồi điển hình của Laravel thành các triển khai tương thích với PSR-7

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

8

Khi bạn đã cài đặt các thư viện này, bạn có thể nhận được yêu cầu PSR-7 bằng cách nhập gợi ý giao diện yêu cầu trên phương thức đóng tuyến hoặc bộ điều khiển của bạn

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

9

Lưu ý
Nếu bạn trả về một phiên bản phản hồi PSR-7 từ một tuyến đường hoặc bộ điều khiển, nó sẽ tự động được chuyển đổi trở lại một phiên bản phản hồi của Laravel và được hiển thị bởi khung.

Đầu vào

Truy xuất đầu vào

Truy xuất tất cả dữ liệu đầu vào

Bạn có thể truy xuất tất cả dữ liệu đầu vào của yêu cầu gửi đến dưới dạng

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

02 bằng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

03. Phương pháp này có thể được sử dụng bất kể yêu cầu đến từ biểu mẫu HTML hay là yêu cầu XHR

Sử dụng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

04, bạn có thể truy xuất tất cả dữ liệu đầu vào của yêu cầu đến dưới dạng tập hợp

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

0

Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

04 cũng cho phép bạn truy xuất một tập hợp con của đầu vào yêu cầu đến dưới dạng một tập hợp

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

1

Lấy một giá trị đầu vào

Sử dụng một vài phương pháp đơn giản, bạn có thể truy cập tất cả thông tin đầu vào của người dùng từ phiên bản

$urlWithQueryString = $request->fullUrl();

2 của mình mà không phải lo lắng về động từ HTTP nào đã được sử dụng cho yêu cầu. Bất kể động từ HTTP là gì, phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

07 có thể được sử dụng để truy xuất dữ liệu nhập của người dùng

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

2

Bạn có thể chuyển một giá trị mặc định làm đối số thứ hai cho phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

07. Giá trị này sẽ được trả về nếu giá trị đầu vào được yêu cầu không có trong yêu cầu

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

3

Khi làm việc với các biểu mẫu có chứa đầu vào mảng, hãy sử dụng ký hiệu "dấu chấm" để truy cập các mảng

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

4

Bạn có thể gọi phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

07 mà không cần bất kỳ đối số nào để truy xuất tất cả các giá trị đầu vào dưới dạng một mảng kết hợp

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

5

Truy xuất đầu vào từ chuỗi truy vấn

Trong khi phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

07 truy xuất các giá trị từ toàn bộ tải trọng yêu cầu (bao gồm cả chuỗi truy vấn), thì phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

11 sẽ chỉ truy xuất các giá trị từ chuỗi truy vấn

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

6

Nếu không có dữ liệu giá trị chuỗi truy vấn được yêu cầu, thì đối số thứ hai của phương thức này sẽ được trả về

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

7

Bạn có thể gọi phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

11 mà không có bất kỳ đối số nào để truy xuất tất cả các giá trị chuỗi truy vấn dưới dạng một mảng kết hợp

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

8

Truy xuất các giá trị đầu vào JSON

Khi gửi các yêu cầu JSON đến ứng dụng của bạn, bạn có thể truy cập dữ liệu JSON thông qua phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

07 miễn là tiêu đề

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

14 của yêu cầu được đặt đúng thành

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

15. Bạn thậm chí có thể sử dụng cú pháp "chấm" để truy xuất các giá trị được lồng trong các mảng/đối tượng JSON

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

9

Truy xuất các giá trị đầu vào có thể xâu chuỗi

Thay vì truy xuất dữ liệu đầu vào của yêu cầu dưới dạng

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

16 nguyên thủy, bạn có thể sử dụng phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

16 để truy xuất dữ liệu yêu cầu dưới dạng phiên bản của

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

18

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

0

Truy xuất giá trị đầu vào Boolean

Khi xử lý các phần tử HTML như hộp kiểm, ứng dụng của bạn có thể nhận được các giá trị "trung thực" thực sự là các chuỗi. Ví dụ: "true" hoặc "on". Để thuận tiện, bạn có thể sử dụng phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

19 để truy xuất các giá trị này dưới dạng boolean. Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

19 trả về

$urlWithQueryString = $request->fullUrl();

37 cho 1, "1", true, "true", "on" và "yes". Tất cả các giá trị khác sẽ trả về

$urlWithQueryString = $request->fullUrl();

38

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

1

Truy xuất giá trị đầu vào ngày

Để thuận tiện, các giá trị đầu vào có chứa ngày/thời gian có thể được truy xuất dưới dạng phiên bản Carbon bằng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

23. Nếu yêu cầu không chứa giá trị đầu vào với tên đã cho, thì

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

58 sẽ được trả về

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

2

Đối số thứ hai và thứ ba được phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

23 chấp nhận có thể được sử dụng để chỉ định định dạng ngày và múi giờ tương ứng

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

3

Nếu có giá trị đầu vào nhưng có định dạng không hợp lệ, thì một

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

26 sẽ được đưa ra;

Truy xuất giá trị đầu vào Enum

Các giá trị đầu vào tương ứng với PHP enums cũng có thể được lấy từ yêu cầu. Nếu yêu cầu không chứa giá trị đầu vào với tên đã cho hoặc enum không có giá trị hỗ trợ khớp với giá trị đầu vào, thì

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

58 sẽ được trả về. Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

29 chấp nhận tên của giá trị đầu vào và lớp enum làm đối số thứ nhất và thứ hai của nó

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

4

Truy xuất đầu vào qua thuộc tính động

Bạn cũng có thể truy cập đầu vào của người dùng bằng các thuộc tính động trên phiên bản

$urlWithQueryString = $request->fullUrl();

2. Ví dụ: nếu một trong các biểu mẫu ứng dụng của bạn chứa trường

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

31, bạn có thể truy cập giá trị của trường như vậy

Khi sử dụng các thuộc tính động, trước tiên Laravel sẽ tìm kiếm giá trị của tham số trong tải trọng yêu cầu. Nếu không có, Laravel sẽ tìm trường trong tham số của route phù hợp

Truy xuất một phần dữ liệu đầu vào

Nếu bạn cần truy xuất một tập hợp con của dữ liệu đầu vào, bạn có thể sử dụng các phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

32 và

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

33. Cả hai phương thức này đều chấp nhận một

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

02 hoặc một danh sách đối số động

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

5

Cảnh báo
Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

32 trả về tất cả các cặp khóa/giá trị mà bạn yêu cầu; .

Xác định nếu có đầu vào

Bạn có thể sử dụng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

36 để xác định xem có giá trị nào trong yêu cầu không. Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

36 trả về

$urlWithQueryString = $request->fullUrl();

37 nếu giá trị có trong yêu cầu

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

6

Khi được cung cấp một mảng, phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

36 sẽ xác định xem có tất cả các giá trị được chỉ định hay không

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

7

Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

40 sẽ thực hiện lệnh đóng đã cho nếu có giá trị trong yêu cầu

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

8

Lần đóng thứ hai có thể được chuyển đến phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

40 sẽ được thực thi nếu giá trị được chỉ định không có trong yêu cầu

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* Update the specified user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request, $id)

9

Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

42 trả về

$urlWithQueryString = $request->fullUrl();

37 nếu có bất kỳ giá trị nào được chỉ định

$urlWithQueryString = $request->fullUrl();

70

Nếu bạn muốn xác định xem một giá trị có trong yêu cầu và không phải là một chuỗi rỗng hay không, bạn có thể sử dụng phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

44

$urlWithQueryString = $request->fullUrl();

71

Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

45 sẽ thực thi bao đóng đã cho nếu một giá trị xuất hiện trong yêu cầu và không phải là một chuỗi rỗng

$urlWithQueryString = $request->fullUrl();

72

Lần đóng thứ hai có thể được chuyển đến phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

45 sẽ được thực thi nếu giá trị đã chỉ định không được "điền"

$urlWithQueryString = $request->fullUrl();

73

Để xác định xem một khóa nhất định có bị thiếu trong yêu cầu hay không, bạn có thể sử dụng các phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

47 và

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

48

$urlWithQueryString = $request->fullUrl();

74

Hợp nhất đầu vào bổ sung

Đôi khi, bạn có thể cần hợp nhất thủ công đầu vào bổ sung vào dữ liệu đầu vào hiện có của yêu cầu. Để thực hiện điều này, bạn có thể sử dụng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

49. Nếu một khóa đầu vào nhất định đã tồn tại trong yêu cầu, nó sẽ bị ghi đè bởi dữ liệu được cung cấp cho phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

49

$urlWithQueryString = $request->fullUrl();

75

Phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

51 có thể được sử dụng để hợp nhất đầu vào vào yêu cầu nếu các khóa tương ứng không tồn tại trong dữ liệu đầu vào của yêu cầu

$urlWithQueryString = $request->fullUrl();

76

Đầu vào cũ

Laravel cho phép bạn giữ đầu vào từ một yêu cầu trong yêu cầu tiếp theo. Tính năng này đặc biệt hữu ích cho việc điền lại biểu mẫu sau khi phát hiện lỗi xác thực. Tuy nhiên, nếu bạn đang sử dụng các tính năng xác thực đi kèm của Laravel, có thể bạn sẽ không cần trực tiếp sử dụng các phương thức nhấp nháy đầu vào phiên này theo cách thủ công, vì một số phương tiện xác thực tích hợp sẵn của Laravel sẽ tự động gọi chúng.

Đầu vào nhấp nháy cho phiên

Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

52 trên lớp

$urlWithQueryString = $request->fullUrl();

2 sẽ flash đầu vào hiện tại vào phiên để nó có sẵn trong yêu cầu tiếp theo của người dùng đối với ứng dụng

Bạn cũng có thể sử dụng các phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

54 và

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

55 để flash một tập hợp con dữ liệu yêu cầu vào phiên. Các phương pháp này rất hữu ích để giữ thông tin nhạy cảm như mật khẩu khỏi phiên

$urlWithQueryString = $request->fullUrl();

77

Đầu vào nhấp nháy rồi chuyển hướng

Vì bạn thường muốn flash đầu vào vào phiên và sau đó chuyển hướng đến trang trước đó, bạn có thể dễ dàng xâu chuỗi đầu vào nhấp nháy vào một chuyển hướng bằng phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

56

$urlWithQueryString = $request->fullUrl();

78

Truy xuất đầu vào cũ

Để truy xuất đầu vào được flash từ yêu cầu trước đó, hãy gọi phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

57 trên phiên bản của

$urlWithQueryString = $request->fullUrl();

2. Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

57 sẽ lấy dữ liệu đầu vào được flash trước đó từ phiên

$urlWithQueryString = $request->fullUrl();

79

Laravel cũng cung cấp một trình trợ giúp toàn cầu

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

57. Nếu bạn đang hiển thị đầu vào cũ trong mẫu Blade, sẽ thuận tiện hơn khi sử dụng trình trợ giúp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

57 để điền lại biểu mẫu. Nếu không có đầu vào cũ nào tồn tại cho trường đã cho, thì

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

58 sẽ được trả về

$urlWithQueryString = $request->fullUrl();

90

Bánh quy

Truy xuất cookie từ các yêu cầu

Tất cả các cookie được tạo bởi khung Laravel đều được mã hóa và ký bằng mã xác thực, nghĩa là chúng sẽ bị coi là không hợp lệ nếu chúng đã bị khách hàng thay đổi. Để truy xuất giá trị cookie từ yêu cầu, hãy sử dụng phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

63 trên phiên bản

$urlWithQueryString = $request->fullUrl();

2

$urlWithQueryString = $request->fullUrl();

91

Cắt xén & chuẩn hóa đầu vào

Theo mặc định, Laravel bao gồm phần mềm trung gian

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

65 và

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

66 trong ngăn xếp phần mềm trung gian toàn cầu của ứng dụng của bạn. Các phần mềm trung gian này được liệt kê trong ngăn xếp phần mềm trung gian toàn cầu theo lớp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

67. Các phần mềm trung gian này sẽ tự động cắt tất cả các trường chuỗi đến theo yêu cầu, cũng như chuyển đổi bất kỳ trường chuỗi trống nào thành

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function store(Request $request)

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

58. Điều này cho phép bạn không phải lo lắng về những vấn đề bình thường hóa này trong các tuyến đường và bộ điều khiển của mình

Vô hiệu hóa chuẩn hóa đầu vào

Nếu bạn muốn tắt hành vi này cho tất cả các yêu cầu, bạn có thể xóa hai phần mềm trung gian khỏi ngăn xếp phần mềm trung gian của ứng dụng bằng cách xóa chúng khỏi thuộc tính

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

69 của lớp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

67 của bạn

Nếu bạn muốn tắt tính năng cắt chuỗi và chuyển đổi chuỗi trống cho một tập hợp con các yêu cầu đối với ứng dụng của mình, bạn có thể sử dụng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

71 được cung cấp bởi cả hai phần mềm trung gian. Phương thức này chấp nhận một bao đóng sẽ trả về

$urlWithQueryString = $request->fullUrl();

37 hoặc

$urlWithQueryString = $request->fullUrl();

38 để cho biết có nên bỏ qua quá trình chuẩn hóa đầu vào hay không. Thông thường, phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

71 nên được gọi trong phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

75 của ứng dụng của bạn

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

76

$urlWithQueryString = $request->fullUrl();

92

Các tập tin

Truy xuất tệp đã tải lên

Bạn có thể truy xuất các tệp đã tải lên từ một phiên bản

$urlWithQueryString = $request->fullUrl();

2 bằng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

78 hoặc sử dụng các thuộc tính động. Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

78 trả về một thể hiện của lớp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

80, mở rộng lớp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

81 của PHP và cung cấp nhiều phương thức để tương tác với tệp

$urlWithQueryString = $request->fullUrl();

93

Bạn có thể xác định xem một tệp có xuất hiện trong yêu cầu hay không bằng cách sử dụng phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

82

$urlWithQueryString = $request->fullUrl();

94

Xác thực tải lên thành công

Ngoài việc kiểm tra xem tệp có tồn tại hay không, bạn có thể xác minh rằng không có vấn đề gì khi tải tệp lên qua phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

83

$urlWithQueryString = $request->fullUrl();

95

Đường dẫn tệp & tiện ích mở rộng

Lớp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

84 cũng chứa các phương thức để truy cập đường dẫn đủ điều kiện của tệp và phần mở rộng của nó. Phương pháp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

85 sẽ cố gắng đoán phần mở rộng của tệp dựa trên nội dung của nó. Tiện ích mở rộng này có thể khác với tiện ích mở rộng do khách hàng cung cấp

$urlWithQueryString = $request->fullUrl();

96

Phương thức tệp khác

Có nhiều phương pháp khác có sẵn trên các phiên bản

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

84. Kiểm tra tài liệu API cho lớp để biết thêm thông tin về các phương pháp này

Lưu trữ tệp đã tải lên

Để lưu trữ tệp đã tải lên, thông thường bạn sẽ sử dụng một trong các hệ thống tệp được định cấu hình của mình. Lớp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

84 có phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

88 sẽ di chuyển tệp đã tải lên một trong các ổ đĩa của bạn, đây có thể là một vị trí trên hệ thống tệp cục bộ của bạn hoặc một vị trí lưu trữ đám mây như Amazon S3

Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

88 chấp nhận đường dẫn nơi tệp sẽ được lưu trữ liên quan đến thư mục gốc được định cấu hình của hệ thống tệp. Đường dẫn này không được chứa tên tệp, vì ID duy nhất sẽ tự động được tạo để dùng làm tên tệp

Phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

88 cũng chấp nhận đối số thứ hai tùy chọn cho tên của đĩa sẽ được sử dụng để lưu trữ tệp. Phương thức sẽ trả về đường dẫn của tệp liên quan đến thư mục gốc của đĩa

$urlWithQueryString = $request->fullUrl();

97

Nếu bạn không muốn tên tệp được tạo tự động, bạn có thể sử dụng phương thức

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

91, phương thức này chấp nhận đường dẫn, tên tệp và tên đĩa làm đối số của nó

$urlWithQueryString = $request->fullUrl();

98

Lưu ý
Để biết thêm thông tin về lưu trữ tệp trong Laravel, hãy xem tài liệu lưu trữ tệp đầy đủ.

Định cấu hình proxy đáng tin cậy

Khi chạy ứng dụng của bạn phía sau bộ cân bằng tải chấm dứt chứng chỉ TLS/SSL, bạn có thể nhận thấy ứng dụng của mình đôi khi không tạo liên kết HTTPS khi sử dụng trình trợ giúp

$urlWithQueryString = $request->fullUrl();

26. Thông thường, điều này là do ứng dụng của bạn đang được chuyển tiếp lưu lượng truy cập từ bộ cân bằng tải của bạn trên cổng 80 và không biết nó sẽ tạo liên kết an toàn

Để giải quyết vấn đề này, bạn có thể sử dụng phần mềm trung gian

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

93 được bao gồm trong ứng dụng Laravel của bạn, phần mềm này cho phép bạn nhanh chóng tùy chỉnh bộ cân bằng tải hoặc proxy mà ứng dụng của bạn nên tin cậy. Các proxy đáng tin cậy của bạn phải được liệt kê dưới dạng một mảng trên thuộc tính

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

94 của phần mềm trung gian này. Ngoài việc định cấu hình proxy đáng tin cậy, bạn có thể định cấu hình proxy

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

95 đáng tin cậy

$urlWithQueryString = $request->fullUrl();

99

Lưu ý
Nếu bạn đang sử dụng AWS Elastic Load Balancing, giá trị

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

95 của bạn phải là

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

97. Để biết thêm thông tin về các hằng số có thể được sử dụng trong thuộc tính

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

95, hãy xem tài liệu của Symfony về các proxy đáng tin cậy.

Tin tưởng tất cả các proxy

Nếu bạn đang sử dụng Amazon AWS hoặc nhà cung cấp bộ cân bằng tải "đám mây" khác, bạn có thể không biết địa chỉ IP của bộ cân bằng thực tế của mình. Trong trường hợp này, bạn có thể sử dụng

$urlWithQueryString = $request->fullUrl();

24 để tin cậy tất cả các proxy

$urlWithQueryString = $request->fullUrl();

0

Cấu hình máy chủ đáng tin cậy

Theo mặc định, Laravel sẽ phản hồi tất cả các yêu cầu mà nó nhận được bất kể nội dung của tiêu đề

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

00 của yêu cầu HTTP. Ngoài ra, giá trị của tiêu đề

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

00 sẽ được sử dụng khi tạo các URL tuyệt đối cho ứng dụng của bạn trong một yêu cầu web

Thông thường, bạn nên định cấu hình máy chủ web của mình, chẳng hạn như Nginx hoặc Apache, để chỉ gửi yêu cầu đến ứng dụng của bạn khớp với tên máy chủ nhất định. Tuy nhiên, nếu bạn không có khả năng tùy chỉnh trực tiếp máy chủ web của mình và cần hướng dẫn Laravel chỉ phản hồi với một số tên máy chủ nhất định, bạn có thể làm như vậy bằng cách bật phần mềm trung gian

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

02 cho ứng dụng của mình

Phần mềm trung gian

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

03 đã được bao gồm trong ngăn xếp

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {

69 của ứng dụng của bạn; . Trong phương thức

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

05 của phần mềm trung gian này, bạn có thể chỉ định tên máy chủ mà ứng dụng của bạn sẽ phản hồi. Các yêu cầu đến với các tiêu đề giá trị

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

00 khác sẽ bị từ chối

$urlWithQueryString = $request->fullUrl();

1

Phương thức của trình trợ giúp

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

07 sẽ trả về một biểu thức chính quy khớp với tất cả các tên miền phụ của giá trị cấu hình

use App\Http\Controllers\UserController;

Route::put('/user/{id}', [UserController::class, 'update']);

08 của ứng dụng của bạn. Phương pháp trợ giúp này cung cấp một cách thuận tiện để cho phép tất cả các tên miền phụ của ứng dụng của bạn khi xây dựng một ứng dụng sử dụng tên miền phụ ký tự đại diện

Làm cách nào để nhận thông số yêu cầu trong Symfony?

sử dụng Symfony\Thành phần\HttpFoundation\Request;

Làm cách nào để gọi API trong Symfony?

sử dụng Symfony\Thành phần\HttpClient\HttpClient; . tạo ra(); . //api. github. com/repos/symfony/symfony-docs');
Đây là mã trong Symfony ngay khi người dùng đăng nhập. sử dụng Symfony\Thành phần\HttpFoundation\Cookie;

Làm cách nào để xác định tuyến đường trong Symfony?

Trong các route của Symfony, các phần biến được bao bọc trong {. } và chúng phải có một tên duy nhất. Ví dụ: tuyến đường hiển thị nội dung bài đăng trên blog được xác định là /blog/{slug}. Thuộc tính. YAML. .
Thuộc tính