Giả mạo phương thức form trong Laravel

Giả mạo phương thức form

HTML forms không hỗ trợ các hành động PUT, PATCH hay DELETE. Nên khi định nghĩa các routes
PUT, PATCH hay DELETE trong một ứng dụng Laravel, bạn sẽ cần thêm một trường _method ẩn
để giả mạo các hành động HTTP này. Giá trị của trường _method sẽ được sử dụng như phương thức
yêu cầu HTTP:

<form action= “/foo/bar” method= “POST” >
@method( ‘PUT’ )
@csrf
<!– Other form fields here –>
</form>

Trong ví dụ trên, form về mặt kĩ thuật vẫn là một POST form trong phạm vi HTML của bạn được xem xét,
nhưng Laravel sẽ biên dịch nó như một yêu cầu PUT vì mã lệnh blade @method(‘PUT’), cái thêm một input
_method ẩn vào form.
Mã lệnh blade @method được sử dụng để tạo trường input ẩn:

<input type= “hidden” name= “_method” value= “PUT” >

Nhớ là, bất cứ khi nào bạn định nghĩa một HTML form trong một ứng dụng Laravel cái chạm route PUT, PATCH hay
DELETE, bạn sẽ cần bao gồm một trường token CSRF. Mã lệnh blade @csrf được sử dụng để khởi tạo trường token:

<input type= “hidden” name= “_token” value= “{{
csrf_token() }}” >

Trường _method ẩn này sẽ được nhúng vào form. Khi form được đệ trình, Laravel sẽ kiểm tra cho trường này và sử
dụng giá trị của nó như phương thức yêu cầu HTTP.
Bằng cách sử dụng giả mạo phương thức form, bạn có thể sử dụng đầy đủ tất cả hành động HTTP trong ứng dụng của
bạn, dù hạn chế của các forms HTML.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *