How to update the Data in Database using Laravel 11
In the previous tutorial, we learnt how to fetch/read data from a database using Laravel 11. The tutorial is about, How to update the data in a database using Laravel 11. To update data in Laravel 11, follow these steps:
Files created for this tutorial
fetchController.php (app/Http/Controllers/fetchController.php)
fetch.blade.php (resources/views/fetch.blade.php)
update.blade.php (resources/views/update.blade.php)
updateController.php (app/Http/Controllers/updateController.php)
web.php (routes/web.php)
The User Data looks like before the update.

Step 1: Create Controller
fetchController.php (app/Http/Controllers/fetchController.php)
The above controller was already created in the previous tutorial.
Step 2: Create the Fetch View
Create a Blade template at resources/views/posts/fetch.blade.php :
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<table class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email id</th>
<th>Mobile No</th>
<th>Address</th>
<th>City</th>
<th>State</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach ($data as $id => $user )
<tr>
<td>1</td>
<td>{{ $user->firstName }}</td>
<td>{{ $user->lastName }}</td>
<td>{{ $user->emailId }}</td>
<td>{{ $user->mobileNumber }}</td>
<td>{{ $user->address }}</td>
<td>{{ $user->city }}</td>
<td>{{ $user->state }}</td>
<td> <a class="btn btn-primary btn-sm" href="{{ route('update', $user->id) }}">Edit</a></td>
</tr>
@endforeach
</tbody>
</table>
Step 3: Create the Edit View
update.blade.php (resources/views/update.blade.php)
<form method="post" action="{{ route('updateUser', ['id' => $user->id]) }}">
@csrf
<div class="row g-3">
<div class="col-md-6">
<label for="your-name" class="form-label">First Name</label>
<input type="text" class="form-control" id="firstName" name="firstName" value="{{ $user->firstName }}">
<span class="text-danger">
@error('firstName')
{{ $message }}
@enderror
</span>
</div>
<div class="col-md-6">
<label for="your-surname" class="form-label">Last Name</label>
<input type="text" class="form-control" id="lastName" name="lastName" value="{{ $user->lastName }}">
<span class="text-danger">
@error('lastName')
{{ $message }}
@enderror
</span>
</div>
<div class="col-md-6">
<label for="your-email" class="form-label"> Email ID</label>
<input type="email" class="form-control" id="emailId" name="emailId" value="{{ $user->emailId }}">
<span class="text-danger">
@error('emailId')
{{ $message }}
@enderror
</span>
</div>
<div class="col-md-6">
<label for="your-subject" class="form-label">Mobile No</label>
<input type="text" class="form-control" id="mobileNumber" name="mobileNumber" value="{{ $user->mobileNumber }}">
<span class="text-danger">
@error('mobileNumber')
{{ $message }}
@enderror
</span>
</div>
<div class="col-12">
<label for="your-message" class="form-label">Address</label>
<textarea class="form-control" id="address" name="address" rows="5" >{{ $user->address }}</textarea>
<span class="text-danger">
@error('address')
{{ $message }}
@enderror
</span>
</div>
<div class="col-md-6">
<label for="your-email" class="form-label"> City</label>
<input type="text" class="form-control" id="city" name="city" value="{{ $user->city }}">
<span class="text-danger">
@error('city')
{{ $message }}
@enderror
</span>
</div>
<div class="col-md-6">
<label for="your-subject" class="form-label">State</label>
<input type="text" class="form-control" id="state" name="state" value="{{ $user->state }}">
<span class="text-danger">
@error('state')
{{ $message }}
@enderror
</span>
</div>
<div class="col-12">
<div class="row">
<div class="col-md-6">
<button type="submit" class="btn btn-dark w-100 fw-bold" name="submit" >Update</button>
</div>
</div>
Step 4: Create Controller
php artisan make:controller updateController
updateController.php (app/Http/Controllers/updateController.php)
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class updateController extends Controller
{
// Show Particular user
public function showUser(string $id){
$user=DB::table('tblusers')->find($id);
return view('update',['user' => $user]);
}
// Update a particular record
public function updateUser(Request $request, $id){
// return $request;
$user=DB::table('tblusers')
->where('id', $id)
->update([
'firstName' => $request->firstName,
'lastName' => $request->lastName,
'emailId' => $request->emailId,
'mobileNumber' => $request->mobileNumber,
'address' => $request->address,
'state' => $request->state,
'city' => $request->city
]);
if($user){
return redirect()->route('fetch')->with('success', 'Data updated successfully.');
} else{
return redirect()->route('fetch')->with('error', 'No changes made');
}
}
}
Step 5: Define Routes
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\insertController;
use App\Http\Controllers\fetchController;
// For Form View
Route::get('/', function () {
return view('form');
})->name('form');
// For Insert Data
Route::post('/insertdata',[insertController::class,'insertdata'])->name('insertdata');
//For Fetch/Read Data
Route::get('/fetch',[fetchController::class,'showData'])->name('fetch');
// For Feth particualr user record
Route::get('/update/{id}',[updateController::class,'showUser'])->name('update');
// For Update the particualr user record
Route::post('/updateUser/{id}',[updateController::class,'updateUser'])->name('updateUser');
How to run the Script
1. Download the project zip file
2. Extract the file and copy insert-app folder
3. Paste inside root directory (for xampp xampp/htdocs, for wamp wamp/www, for lamp var/www/Html)
4.Open PHPMyAdmin (http://localhost/phpmyadmin)
5. Create a database with the name userdb
6. Import userdb.sql file(given inside the zip package in SQL file folder)
7. Run these command
PS C :\> cd xampp/htdocs/insert-app
PS C:\xampp\htdocs\insert-app> php artisan serve
8. After that open the browser run the script
