novius / laravel-nova-menu
一个用于管理应用程序菜单的 Nova 资源工具。
7.0.0
2024-08-06 14:19 UTC
Requires
- php: ^8.1
- illuminate/support: ^9.0 | ^10.0 | ^11.0
- laravel/nova: ^4.0
- novius/laravel-linkable: ^1.0
- novius/laravel-nova-order-nestedset-field: ^4.0
- spatie/laravel-sluggable: ^3.4.0
Requires (Dev)
- laravel/pint: ^1.7
- orchestra/testbench: ^9.2
This package is auto-updated.
Last update: 2024-09-13 15:47:30 UTC
README
一个用于管理菜单的 Nova 工具。
要求
- PHP >= 8.1
- Laravel Nova >= 4.0
- Laravel 框架 >= 9.0 | >= 10.0 | >= 11.0
注意:以下说明适用于 Laravel >= 9.0 和 Laravel Nova 4.0。如果您使用的是早期版本,请参阅早期版本文档。
安装
composer require novius/laravel-nova-menu
然后,启动迁移
php artisan migrate
配置
有一些可覆盖的选项可用。
php artisan vendor:publish --provider="Novius\LaravelNovaMenu\LaravelNovaMenuServiceProvider" --tag="config"
编辑默认模板
运行
php artisan vendor:publish --provider="Novius\LaravelNovaMenu\LaravelNovaMenuServiceProvider" --tag="views"
用法
Blade 指令
您可以使用以下方式显示菜单:
<x-laravel-nova-menu::menu menu="slug-of-menu" />
您还可以通过传递模型实例来显示菜单
<x-laravel-nova-menu::menu :menu="Menu::find(1)" />
默认情况下,已激活 app()->getLocale() 的回退。
如果您想强制使用没有回退的特定 slug,可以调用
<x-laravel-nova-menu::menu menu="slug-of-menu" :localeFallback="false" />
如果您想使用特定的视图,可以调用
<x-laravel-nova-menu::menu menu="slug-of-menu" view="partial/menu" />
覆盖视图
您可以使用以下方式覆盖视图
php artisan vendor:publish --provider="Novius\LaravelNovaMenu\LaravelNovaMenuServiceProvider" --tag="views"
管理内部链接可能性
Laravel Nova Menu 使用 Laravel Linkable 来管理可链接的路由和模型。请参阅文档。
自定义传递给视图的树
<?php namespace App\Providers; use Novius\LaravelNovaMenu\LaravelNovaMenuService; class AppServiceProvider extends ServiceProvider { // ... public function boot() { /** * @var LaravelNovaMenuService $menu */ $menu = $this->app->get('laravel-nova-menu'); $menu->setTreeUsing(function(Menu $menu, array $tree) { // ... your actions on tree return $tree; }); } }
自定义树构建
<?php namespace App\Providers; use Novius\LaravelNovaMenu\LaravelNovaMenuService; class AppServiceProvider extends ServiceProvider { // ... public function boot() { /** * @var LaravelNovaMenuService $menu */ $menu = $this->app->get('laravel-nova-menu'); $menu->setBuildTreeUsing(function(Collection $items) { // ... your actions to build tree as an array return $tree; }); } }
代码风格检查
使用以下方式运行 php-cs
composer run-script lint
贡献
欢迎贡献!在 Github 上提交问题或创建 Pull Request。
许可证
本软件包在GNU Affero 通用公共许可证 v3 或(根据您的选择)任何后续版本下发布。