To delete records we can use DB facade with the delete method. To do so follow the below steps one by one:
- Step 1: Create Controller UserController by executing this command.
php artisan make:controller UserController
- Step 2: We can delete records in two ways.
First Method: The first is to delete direct using database command. Write following Code in App/Http/Controllers/UserController.php
<?php
namespace
App\Http\Controllers;
use
Illuminate\Http\Request;
use
DB;
class
UserController
extends
Controller {
public
function
index()
{
$users
= DB::select(
'SELECT * FROM users'
);
return
view(
'user'
, [
'users'
=>
$users
]);
}
public
function
destroy(
$id
)
{
DB::
delete
(
'DELETE FROM users WHERE id = ?'
, [
$id
]);
echo
(
"User Record deleted successfully."
);
return
redirect()->route(
'users.index'
);
}
}
Second Method: The second way is to delete using the Laravel delete Function and User Model (Easy one).
<?php
namespace
App\Http\Controllers;
use
Illuminate\Http\Request;
use
App\User;
class
UserController
extends
Controller {
public
function
index()
{
$users
= User::All();
return
view(
'user'
, [
'users'
=>
$users
]);
}
public
function
destroy(
$id
)
{
$user
= User::where(
'id'
,
$id
)->firstorfail()->
delete
();
echo
(
"User Record deleted successfully."
);
return
redirect()->route(
'users.index'
);
}
}
- Step 3: Implementation or Driver Code and create web routes for implementation of the above code in routes/web.php
<?php
Route::get(
'/user'
,
'UserController@index'
)->name(
'users.index'
);
Route::
delete
(
'/user/{id}'
,
'UserController@destroy'
)
->name(
'users.destroy'
);
?>
- Step 4: Create a View File from where we display our users in resources/views directory name user.blade.php. Write following HTML code.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>Users Record</
title
>
<
style
type
=
"text/css"
>
table {
color: #333;
font-family: sans-serif;
width: 640px;
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
border: 1px solid #CCC;
height: 30px;
}
th {
background: #F3F3F3;
font-weight: bold;
}
td {
background: #FAFAFA;
text-align: center;
}
</
style
>
</
head
>
<
body
>
<
table
>
<
tr
>
<
td
>ID</
td
>
<
td
>Name</
td
>
<
td
>Email</
td
>
<
td
>Delete</
td
>
</
tr
>
@foreach ($users as $user)
<
tr
>
<
td
>{{ $user->id }}</
td
>
<
td
>{{ $user->name }}</
td
>
<
td
>{{ $user->email }}</
td
>
<
td
><
a
href
=
"{{ route('users.index') }}"
onclick="event.preventDefault();
document.getElementById(
'delete-form-{{$user->id}}').submit();">
Delete
</
a
>
</
td
>
<
form
id="delete-form-{{$user->id}}"
+ action="{{route('users.destroy', $user->id)}}"
method="post">
@csrf @method('DELETE')
</
form
>
</
tr
>
@endforeach
</
table
>
</
body
>
</
html
>
- Step 5: Start the server by executing php artisan:serve command and go to http://localhost:8000/user and the output will be:
- Output: Click on the delete button to get the record deleted. After deleting two records output is: