在之前的項目中,我們一直使用代碼硬編碼的方式來管理網站菜單。隨著功能的不斷增加,菜單項也越來越多,修改和維護起來變得非常困難。每次新增或修改菜單項都需要修改代碼,然后重新部署,這不僅浪費時間,還容易出錯。更糟糕的是,如果需要根據不同的用戶角色顯示不同的菜單,代碼將會變得更加復雜和難以維護。
為了解決這個問題,我開始尋找一種更優雅、更靈活的菜單管理方案。在一番搜索之后,我發現了 balajidharma/laravel-menu 這個 laravel 包。它允許我們將菜單數據存儲在數據庫中,通過簡單的代碼即可動態生成菜單,完美解決了我的痛點。
安裝這個包非常簡單,只需要使用 composer:
composer require balajidharma/laravel-menu
然后,執行以下命令發布遷移文件和配置文件:
php artisan vendor:publish --provider="BalajiDharmaLaravelMenuMenuServiceProvider"
最后,運行遷移:
php artisan migrate
接下來,就可以開始創建菜單和菜單項了。 balajidharma/laravel-menu 提供了簡潔的 API 來操作菜單。例如,創建名為 “Main Menu” 的菜單:
use BalajiDharmaLaravelMenuModelsMenu;Menu::create([ 'name' => 'Main Menu', 'machine_name' => 'main_menu', 'description' => 'Site main menu',]);
創建菜單項同樣簡單,你可以一次創建多個菜單項:
$menu = Menu::create([ 'name' => 'Admin', 'machine_name' => 'admin', 'description' => 'Admin Menu',]);$menu_items = [ // ... (多個菜單項的數組) ...];$menu->menuItems()->createMany($menu_items);
這個庫還支持菜單樹結構,你可以輕松獲取菜單樹,方便在視圖中進行渲染。 它還提供了 學習地址。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦