Mustaneer's avatar

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

0 likes
0 replies

Please or to participate in this conversation.