In my routes file, I have
Route::delete('events/{events}', ['as' => 'events_delete', 'uses' => 'Admin\EventsController@destroy'] );
In my view file I have
<a href="{!! route('events_delete', ['id' => $event->id ]) !!}" type="button" class="btn btn-sm btn-danger"><em class="fa fa-trash"></em></a>
This does not work. When I change the route to
Route::get('events/{events}', ['as' => 'events_delete', 'uses' => 'Admin\EventsController@destroy'] );
it does work. However I don't like the idea of using a GET verb to delete items instead of the DELETE verb. It feels like a trick...
How can I change the form code to make sure it sends a DELETE verb?
Solution 1 (from TheFallen): with DELETE VERB in routes file
<form action="{!! route('events_delete', ['id' => $event->id ]) !!}" method="POST">
{{ method_field('DELETE') }}
{{ csrf_field() }}
<button class="btn btn-danger btn-sm" type="submit"><em class="fa fa-trash"></em></button>
</form>
Solution 2: with GET VERB in routes file
<a href="{!! route('events_delete', ['id' => $event->id ]) !!}" type="button" class="btn btn-sm btn-danger"><em class="fa fa-trash"></em></a>