For defining a route as a resource with Route::resource
, the docs indicate:
Verb Path Action Route Name
-------------------------------------------------------------------
GET /resource index resource.index
GET /resource/create create resource.create
POST /resource store resource.store
GET /resource/{resource} show resource.show
GET /resource/{resource}/edit edit resource.edit
PUT/PATCH /resource/{resource} update resource.update
DELETE /resource/{resource} destroy resource.destroy
as per typical REST CRUD so PUT/PATCH is used for update actions and DELETE for destroy actions. I would think that is meant to define a typical resource interaction, even when manually defining my own routes and controller actions.
Here's the core of what I understand about these interactions with Laravel:
Route::put
and DELETE with Route::delete.
Input
facade uses Illuminate\Http\Request::input
typifying interactions and will return json_decode
of content for json, all GET parameters for GET requests or all POST parameters otherwise. We must use json or not actually use PUT or DELETE at all (fine because http PUT and DELETE requests are not universally supported)._method
in the data so that the routing can enforce the verbs.Are PUT and DELETE solely there to create externally-accessible json REST APIs or do they serve another purpose? Is there some benefit aside from routing to the same URI with a different endpoint, enforcing the presence of a _method
in $_POST
or the json?
PUT and DELETE are supposed to be idempotent, but is this even implemented in Laravel? Is this something that I have to make happen in my controllers or does the routing enforce this somehow?
Essentially, if PUT and DELETE in Laravel are functionally identical to POST, aside from REST semantics and parallel routing, when and why should I use them over POST?
As a standard practice of creating an CRUD application there are certain actions in like update and delete which requires the method submitted to the server url to be either PUT / PATCH (to modify the resource) and DELETE (for deleting the resource). This is how the standard calls look like in Laravel CRUD application.
Laravel - Delete Records We can delete the record using the DB facade with the delete method. The syntax of delete method is shown in the following table. Run a delete statement against the database.
\nSo switch to the browser and refresh the page. \nNow lets delete any product. \nSo just click on delete link. \nAnd you can see here the message product has been deleted.
You use PUT
method when you want to Update a record, And you use DELETE
method when you want to Delete a record.
Note that in the resourceful controller, both PUT
and DELETE
method directed to the same url (resource/{resource})
, so if you don't distinguish the method with PUT
or DELETE
, it will be a problem.
GET: To get data,
POST: To submit data,
PUT: To update data,
DELETE: To destroy data
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With