Hi, guys!
In my laravel application I have users, admins and clients user roles. Admins and users can both delete apartments. For the users this functionality is working, but for the Admins - not. I suppose, that the issue is in the situation, that I have defined the same route name for Users and Admins. But I am not sure how to fix it properly. Could you please help to solve this?
web.php:
Route::group(['prefix'=>'admin', 'middleware'=>['isAdmin','auth','PreventBackHistory']], function(){
Route::get('addapartment',[AdminController::class,'addapartment'])->name('admin.addapartment');
Route::get('addhouse',[AdminController::class,'addhouse'])->name('admin.addhouse');
Route::post('addapartment',[ApartmentController::class,'addbyadmin'])->name('admin.addapartment');
Route::post('addhouse',[HouseController::class,'addbyadmin'])->name('admin.addhouse');
Route::get('apartments',[AdminController::class,'apartments'])->name('admin.apartments');
Route::get('houses',[AdminController::class,'houses'])->name('admin.houses');
Route::delete('apartments/{apartment}',[ApartmentController::class,'deletebyadmin'])->name('apartments.delete');
Route::delete('houses/{house}',[HouseController::class,'deletebyadmin'])->name('houses.delete');
Route::get('profile',[AdminController::class,'profile'])->name('admin.profile');
});
Route::group(['prefix'=>'user', 'middleware'=>['isUser','auth','PreventBackHistory']], function(){
Route::get('addapartment',[UserController::class,'addapartment'])->name('user.addapartment');
Route::get('addhouse',[UserController::class,'addhouse'])->name('user.addhouse');
Route::post('addapartment',[ApartmentController::class,'addData'])->name('user.addapartment');
Route::post('addhouse',[HouseController::class,'addData'])->name('user.addhouse');
Route::get('apartments',[UserController::class,'apartments'])->name('user.apartments');
Route::get('houses',[UserController::class,'houses'])->name('user.houses');
Route::delete('apartments/{apartment}',[ApartmentController::class,'delete'])->name('apartments.delete');
Route::delete('houses/{house}',[HouseController::class,'delete'])->name('houses.delete');
Route::get('profile',[UserController::class,'profile'])->name('user.profile');
});
ApartmentController:
public function delete(Apartment $apartment)
{
$apartment->delete();
$apartments = Apartment::all();
$houses = House::all();
$users = User::all();
return view('dashboards.users.apartments', compact('apartments', 'houses', 'users'));
}
public function deletebyadmin(Apartment $apartment)
{
$apartment->delete();
$apartments = Apartment::all();
return view('dashboards.admins.apartments', compact('apartments'));
}
AdminController:
function apartments(){
$apartments = Apartment::all();
$users = User::all();
return view('dashboards.admins.apartments', compact('apartments', 'users'));
}
apartments.blade for admins:
<form method="POST" action="{{route('apartments.delete', $apartment->apartment_id)}}">
@method('delete')
@csrf
<button type="submit" class="btn btn-danger btn-sm">Delete</button>
</form>
apartments.blade file for users:
<form method="POST" action="{{route('apartments.delete', $apartment->apartment_id)}}">
@method('delete')
@csrf
<button type="submit" class="btn btn-danger btn-sm">Delete</button>
</form>
Thank you in advance!