如何在laravel-admin.org中生成菜单项?命令行或代码实现方案问询
Laravel-Admin 命令行/代码创建菜单项解决方案
方案1:使用Seeder实现(最推荐,适合跨环境同步、git分享)
Laravel-Admin 自带了Encore\Admin\Auth\Database\Menu模型,直接写数据填充即可,操作步骤:
- 先创建自定义菜单填充器:
运行命令php artisan make:seeder AdminMenuSeeder - 打开生成的
database/seeders/AdminMenuSeeder.php文件,写入菜单创建逻辑,示例代码:
<?php namespace Database\Seeders; use Encore\Admin\Auth\Database\Menu; use Illuminate\Database\Seeder; class AdminMenuSeeder extends Seeder { public function run() { // 新增一级菜单示例 Menu::firstOrCreate( ['uri' => 'your-page-path'], [ 'title' => '菜单显示名称', 'icon' => 'fa-bars', // 填写font-awesome对应图标名 'parent_id' => 0, // 0为顶级菜单,填写父菜单ID可生成子菜单 'order' => 5, // 菜单排序值,数值越小排序越靠前 'permission' => null, // 需要绑定权限的话填写对应权限的slug ] ); // 新增子菜单示例 Menu::firstOrCreate( ['uri' => 'your-sub-page-path'], [ 'title' => '子菜单名称', 'icon' => 'fa-circle-o', 'parent_id' => Menu::where('uri', 'your-page-path')->value('id'), 'order' => 1, ] ); } }
- 运行填充命令生效:
php artisan db:seed --class=AdminMenuSeeder - 把生成的Seeder文件提交到git,你的朋友拉取代码后只需要运行上面的填充命令就能得到完全一致的菜单配置,不需要手动在后台操作。
方案2:封装自定义命令(适合频繁创建菜单的场景)
如果经常需要批量创建菜单,可以自己封装一个artisan命令:
- 生成命令文件:
php artisan make:command AdminMenuCreateCommand - 在命令文件中引入Menu模型,接收命令行传入的标题、路径、图标等参数,调用Menu::create方法写入数据即可,写完后可以直接通过命令行类似
php artisan admin:menu-create "菜单名" "path" "fa-icon"的形式快速创建。
注意:两种方案都建议用firstOrCreate方法避免重复插入数据,多次运行填充/命令不会导致菜单重复
内容的提问来源于stack exchange,提问作者chingis31
相关产品推荐
相关产品推荐

