In my Laravel application, I have 5 pages. This is just an example.
- About
- Service
- TermsAndCondition
- PrivacyPolicy
- Contact
For display those page i have create one controller called PageController.
PageController
public function index($page)
{
return view('page', compact('page));
}
web.php
Route::get('/{page}', [PageController::class, 'index'])->where('page' => ['about|service|termscondition|privacypolicy|contact']);
For manage permission, I am using Spatie Permission package.
I have some permission. e.g
- about.view
- service.view
- termscondition.view
- privacypolicy.view
- contact.view
User only can view those pages after login if they have permission (This concept is for demo purpose only).
If I have individual route for every page then I can apply middleware('can:about.view') like this way.
But in this case, where i am using one route for every pages dynamically, so how can I apply middleware for permission?