honda/navigation

此包已被弃用且不再维护。作者建议使用felixdorn/laravel-navigation包。

导航

0.2.1 2021-11-11 18:07 UTC

This package is auto-updated.

Last update: 2022-09-18 14:53:30 UTC


README

Tests Formats Version Total Downloads License

安装

需要PHP 8.0+

您可以通过composer安装此包

composer require honda/navigation

使用方法

创建导航栏

use Felix\Navigation\Navigation;

Navigation::macro('theName', function (Navigation $navigation) {
    // ...
});

渲染导航栏

use Felix\Navigation\Navigation;

Navigation::theName();

项目

链接

如果您传递一个路由名称,如loginarticles.index,则会解析出实际路径。您可以向路由解析器传递额外的上下文。

如果您传递其他任何内容,它将按原样渲染。

$item->href('articles.index');
$item->href('articles.edit', ['article' => 1]);
$item->href('https://repo.new');

图标

此包与Blade Icons无缝集成。

$item->icon('heroicon-eye');

强制激活状态

这将绕过可能定义的激活模式,并强制项目以激活状态渲染。

$item->alwaysActive();

激活模式

根据高级模式标记项目为激活状态。如果没有提供激活模式,则使用解析出的路由路径。有关更多信息,请参阅URL模式匹配器

$item->activePattern('/articles/*');

条件渲染项目

use Felix\Navigation\Item;

$navigation->addIf($isAdmin, 'Settings', function (Item $item) {
    // ...
});
$navigation->addUnless($isReader, 'Articles', function (Item $item) {
    // ...
});

部分

添加部分

use Felix\Navigation\Item;
use Felix\Navigation\Section;

$navigation->addSection('Name', function (Section $section) {
    $section->add('Child', function (Item $item) {
        // ...
    });
});

条件渲染部分

use Felix\Navigation\Section;

$navigation->addSectionIf($isAdmin, 'Admin', function (Section $section) {
    // ...
});
$navigation->addSectionUnless($isReader, 'Bookmarks', function (Section $section) {
    // ...
});

Blade组件

我们提供了一个名为<x-navigation-sidebar />的组件,您可以直接使用它(需要AlpineJS才能完全启用)。

// app/View/Components/Topbar.php
use Felix\Navigation\Components\Component;
class Topbar extends Component {
    public function viewName() : string{
         return 'components.topbar';
    }
}

您可以访问一个包含Navigation对象的$items变量。

现在在您的视图中

<x-topbar :items="\Felix\Navigation\Navigation::myName()"/>

测试

composer test

为Laravel提供的导航是由 Félix DornMIT许可 下创建的。