First try to run php artisan route:clear
Also in your route path you use address.index with a dot between address and index. This is not correct use a slash instead. Don't use dot's in route path's.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hi,
The last route is not being recognized as I keep getting Route [home.address] not defined.
<?php
use App\Http\Controllers\UserProfileController;
use App\Http\Controllers\UserAddressController;
use App\Http\Controllers\UserDashboardController;
use Illuminate\Support\Facades\Route;
/** Laravel Breeze routes that update the User's username, email and password */
Route::middleware(['auth', 'verified', 'role:user'])
->group(function () {
Route::get('dashboard', [UserDashboardController::class, 'dashboard'])->name('dashboard');
Route::get('profile', [UserProfileController::class, 'index'])->name('profile');
Route::get('address', [UserAddressController::class, 'address'])->name('address');
Route::put('profile', [UserProfileController::class, 'updateProfile'])->name('profile.update');
Route::post('profile', [UserProfileController::class, 'updatePassword'])->name('profile.update.password');
});
/** User Address route */
Route::get('user/dashboard/create', [UserAddressController::class, 'create'])->name('address.create');
Route::post('user/dashboard/address', [UserAddressController::class, 'store'])->name('address.store');
Route::get('user/dashboard/address/{id}/edit', [UserAddressController::class, 'edit'])->name('address.edit');
Route::put('user/dashboard/address/{id}', [UserAddressController::class, 'update'])->name('address.update');
Route::delete('user/dashboard/address/{id}', [UserAddressController::class, 'destroy'])->name('address.destroy');
Route::get('/user/dashboard/address.index', [UserAddressController::class, 'home'])->name('home.address');
This is the UserAddressController
<?php
namespace App\Http\Controllers;
// This adds the UserAddress Model to the controller
use App\Models\UserAddress;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
class UserAddressController extends Controller
{
// This will return the address page
public function address()
{
$addresses = UserAddress::where('user_id', Auth::user()->id)->get();
return view('user.dashboard.address.index', compact('addresses'));
}
// This will return the create page
public function create()
{
return view('user.dashboard.address.create');
}
public function home()
{
return view('user.dashboard.address.index');
}
public function store(Request $request)
{
// This adds validation to the user input fields
$request->validate([
'name' => ['required', 'max:200'],
'email' => ['required', 'max:200', 'email'],
'phone' => ['required', 'max:200'],
'country' => ['required', 'max:200'],
'state' => ['required', 'max:200'],
'city' => ['required', 'max:200'],
'zip' => ['required', 'max:200'],
'address' => ['required', 'max:200'],
]);
// This stores the user input into the database
$address = new UserAddress();
$address->user_id = Auth::user()->id;
$address->name = $request->name;
$address->email = $request->email;
$address->phone = $request->phone;
$address->country = $request->country;
$address->state = $request->state;
$address->city = $request->city;
$address->zip = $request->zip;
$address->address = $request->address;
$address->save();
// This displays the toast message
toastr('Updated Successfully!')->success('Address successfully added!');
return redirect()->route('address');
}
// This will update an existing address
public function edit(string $id)
{
$address = UserAddress::findOrFail($id);
return view('user.dashboard.address.edit', compact('address'));
}
public function update(Request $request, string $id)
{
$request->validate([
'name' => ['required', 'max:200'],
'email' => ['required', 'max:200', 'email'],
'phone' => ['required', 'max:200'],
'country' => ['required', 'max:200'],
'state' => ['required', 'max:200'],
'city' => ['required', 'max:200'],
'zip' => ['required', 'max:200'],
'address' => ['required'],
]);
$address = UserAddress::findOrFail($id);
$address->user_id = Auth::user()->id;
$address->name = $request->name;
$address->email = $request->email;
$address->phone = $request->phone;
$address->country = $request->country;
$address->state = $request->state;
$address->city = $request->city;
$address->zip = $request->zip;
$address->address = $request->address;
$address->save();
toastr('Updated Successfully!', 'success', 'Success')->success('Updated Successfully!');
return redirect()->route('home.address');
}
// This will delete an address
public function destroy(string $id)
{
$address = UserAddress::findOrFail($id);
$address->delete();
return response(['status' => 'success', 'message' => 'Deleted Successfully!']);
}
}
Grateful for your guidance.
@Mamunsson you need to get past blindly copy and paste solutions and try and understand what the code is saying
in your route service provider you had
Route::middleware(['web', 'auth', 'role:user'])
->prefix('user')
->as('user.')
->group(base_path('routes/user.php'));
which means that every route inside the user.php file requires web middleware, that the user is authenticated and that they have a role of user.
so in user.php there is no need to reference the same middleware again
Please or to participate in this conversation.