Display dynamic data in dynamic pages that create with submenu and childmenu slugs
Hi Guys! I am beginner level laravel developer. I need some help.
i created a helper function for created dynamic pages class PageGeneratorHelper { /** * Create menu routes and corresponding view files dynamically. * * @param array|\Illuminate\Database\Eloquent\Collection $menus * @param string $folder */ public static function createMenuRoutes($menus) { foreach ($menus as $menu) { $viewPath = resource_path('views/frontend/' . $menu['slug'] . '.blade.php');
// Check if the view already exists
if (!View::exists('frontend.' . $menu['slug'])) {
// If not, create a new Blade file
File::put($viewPath, "@extends('frontend.layouts.master')\n\n@section('content')\n <h1>" . ucfirst($menu['slug']) . " Page</h1>\n@endsection");
}
// Check if the route has been registered already to prevent re-registration
if (!Route::has($menu['slug'])) {
// Dynamically create a route for each menu
Route::get("/{$menu['slug']}", function () use ($menu) {
return view("frontend.{$menu['slug']}");
})->name($menu['slug']);
}
}
}
}
i created observer of submenu and childmenu class SubMenuObserver { /** * Handle the SubMenu "created" event. * * @param \App\Models\SubMenu $subMenu * @return void */ public function created(SubMenu $subMenu) { // Retrieve all submenus where 'submenu_create_page' is set to 1 if ($subMenu->submenu_create_page) { PageGeneratorHelper::createMenuRoutes(SubMenu::where('submenu_create_page', 1)->get()); } } }
class ChildMenuObserver { /** * Handle the ChildMenu "created" event. * * @param \App\Models\ChildMenu $childMenu * @return void */ public function created(ChildMenu $childMenu) { if ($childMenu->child_menu_create_page) { PageGeneratorHelper::createMenuRoutes(ChildMenu::where('child_menu_create_page', 1)->get()); } }
and this is my app service provider class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { // }
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
// Register the observers
SubMenu::observe(SubMenuObserver::class);
ChildMenu::observe(ChildMenuObserver::class);
// Share menu data across all views
view()->share('menus', Menu::with('submenus.childmenus')->orderBy('order')->get());
// Generate routes for all existing submenus and childmenus
$this->registerDynamicRoutes();
}
/**
* Registers dynamic routes for submenus and childmenus.
* @return void
*/
private function registerDynamicRoutes()
{
// Fetch all SubMenus and ChildMenus where pages need to be created
$subMenus = SubMenu::where('submenu_create_page', 1)->get();
$childMenus = ChildMenu::where('child_menu_create_page', 1)->get();
// Use PageGeneratorHelper to create routes
PageGeneratorHelper::createMenuRoutes($subMenus);
PageGeneratorHelper::createMenuRoutes($childMenus);
}
}
give some advice for showing dynamic data in this views
in this view i show same frontend design but data are different
like i show overview tab data, tour plan tab data, tour map data and tour gallery data
and please also guide me some adminpanel logic for dynamic data
Please or to participate in this conversation.