falkan3 / laravel-navigation
在 Laravel 应用中管理菜单、面包屑和其他导航元素
Requires
- php: ^8.0
- spatie/url: ^1.3.5|^2.0
Requires (Dev)
- orchestra/testbench: ^5.0|^6.23|^7.0|^8.0
- pestphp/pest-plugin-laravel: ^1.3
- phpunit/phpunit: ^9.5
- spatie/pest-plugin-snapshots: ^1.1
- spatie/phpunit-snapshot-assertions: ^4.2
This package is not auto-updated.
Last update: 2024-09-29 06:03:28 UTC
README
在 Laravel 应用中管理菜单、面包屑和其他导航元素
Laravel Navigation 是 Laravel Menu 的精神继承者。Laravel Menu 仍然会得到积极维护,但这两个包之间存在一些主要差异。
Laravel Menu 的主要目标是使用 PHP 构建 HTML 菜单。Laravel Navigation 描述了应用程序的导航树,可以用作创建菜单和面包屑等导航元素的基。Laravel Menu 拥有丰富的 API 用于 HTML 生成。Laravel Navigation 不执行任何 HTML 生成(尽管我们可能在将来提供一些 Blade 文件)。相反,Laravel Navigation 应该提供灵活性,让您可以构建自己的 UI,无需担心导航树和活动状态的复杂性。将其视为一个 无渲染组件。
// typically, in a service provider Navigation::make() ->add('Home', route('home')) ->add('Blog', route('blog.index'), function (Section $section) { $section ->add('All posts', route('blog.index')) ->add('Topics', route('blog.topics.index')); }) ->addIf(Auth::user()->isAdmin(), function (Navigation $navigation) { $navigation->add('Admin', route('admin.index')); });
导航对象可以渲染成树或面包屑。
以下是一些示例,当访问 /blog/topics/laravel
时
// Render to tree Navigation::make()->tree();
[ { "title": "Home", "url": "/", "active": false, "children": [] }, { "title": "Blog", "url": "/blog", "active": false, "children": [ { "title": "All posts", "url": "/blog", "active": false, "children": [] }, { "title": "Topics", "url": "/blog/topics", "active": true, "children": [] } ], }, { "title": "Admin", "url": "/admin", "active": false, "children": [] } ]
// Append additional pages in your controller Navigation::make()->activeSection()->add($topic->name, route('blog.topics.show', $topic)); // Render to breadcrumbs Navigation::make()->breadcrumbs();
[ { "title": "Blog", "url": "/blog" }, { "title": "Topics", "url": "/blog/topics" }, { "title": "Laravel", "url": "/blog/topics/laravel" } ]
// Render the current section Navigation::make()->current();
{ "title": "Home", "url": "/", "attributes": [] }
支持我们
我们投入了大量资源来创建 一流的开放式源代码包。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感激您从家乡寄给我们明信片,注明您正在使用我们的哪个包。您可以在 我们的联系页面 上找到我们的地址。我们将所有收到的明信片发布在 我们的虚拟明信片墙上。
安装
您可以通过 composer 安装此包
composer require spatie/laravel-navigation
测试
composer test
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全性
如果您发现有关安全性的错误,请通过 security@spatie.be 发送电子邮件,而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。