nomiscz / laravel-breadcrumbs
为 Laravel 简化面包屑导航。
Requires
- php: ^7.2
- illuminate/routing: ^7.0
- illuminate/support: ^7.0
- illuminate/view: ^7.0
Requires (Dev)
- mockery/mockery: ^1.3
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-10 02:50:37 UTC
README
面包屑是一个简单的 Laravel 面包屑生成器,它尝试利用魔法,使启动变得简单。它自带 Bootstrap 3 和 4(默认为 4)的支持,但也可以轻松地将自己的视图添加进去。
安装
如往常一样,通过 Composer 需求此包。
$ composer require nomiscz/laravel-breadcrumbs
使用
在 routes/breadcrumbs.php
创建一个新文件来定义你的面包屑。默认情况下,该包将与命名路由一起工作,这适用于资源路由。但是,你也可以自由地按控制器动作对定义路由。
Breadcrumbs::for('admin.pages.index', function ($trail) { $trail->add('Admin', route('admin.pages.index')); }); Breadcrumbs::for('admin.users.index', function ($trail) { $trail->parent('admin.pages.index'); $trail->add('Users', route('admin.users.index')); }); Breadcrumbs::for('admin.users.show', function ($trail, User $user) { $trail->parent('admin.users.index'); $trail->add($user->full_name, route('admin.users.show', $user)); }); Breadcrumbs::for('admin.users.edit', function ($trail, User $user) { $trail->parent('admin.users.show', $user); $trail->add('Edit', route('admin.users.edit', $user)); }); Breadcrumbs::for('admin.users.roles.index', function ($trail, User $user) { $trail->parent('admin.users.show', $user); $trail->add('Roles', route('admin.users.roles.index', $user)); }); Breadcrumbs::for('admin.users.roles.show', function ($trail, User $user, Role $role) { $trail->parent('admin.users.roles.index', $user, $role); $trail->add('Edit', route('admin.users.roles.show', [$user, $role])); });
注意,你可以在面包屑定义内部调用 parent()
,这样你可以构建面包屑树。通过第二个参数传递任何你需要向上传递的参数。
如果你想使用控制器/动作对而不是命名路由,那也可以。使用常规 Laravel 语法,该包将正确地为你映射它。请注意,如果路由有名称,则该包将始终首先查找命名面包屑。
Breadcrumbs::for('PagesController@getIndex', function ($trail) { $trail->add('Home', action('PagesController@getIndex')); }); Breadcrumbs::for('secret.page', function ($trail) { $trail->add('Secret page', url('secret')) });
渲染面包屑
在你的视图文件中,你只需在你想显示面包屑的地方调用 render()
方法。就这么简单。如果没有当前路由的面包屑,则不会返回任何内容。
{{ Breadcrumbs::render() }}
你不需要转义面包屑的内容,它已经包含在 Illuminate\Support\HtmlString
的实例中,所以 Laravel 知道如何使用它。
多个面包屑文件
如果你的面包屑文件开始变得有点大,你可能想要将其分解成多个较小的文件。如果是这样,你可以在默认定义文件顶部简单地 require
其他面包屑文件。
require 'breadcrumbs.admin.php';
自定义面包屑视图
该包自带一个与 Bootstrap 3 兼容的视图,你可以根据需要发布和自定义它,或者用你自己的视图完全覆盖它。只需运行以下命令来发布视图。
$ php artisan vendor:publish --provider="NomisCZ\Breadcrumbs\BreadcrumbsServiceProvider" --tag=views
这会将默认的 bootstrap4
视图发布到你的 resources/views/vendor/breadcrumbs
目录,你可以编辑文件以满足你的需求。如果你想使用你自己的视图,请运行以下命令来发布配置文件。
$ php artisan vendor:publish --provider="NomisCZ\Breadcrumbs\BreadcrumbsServiceProvider" --tag=config
这会将 config/breadcrumbs.php
发布出来,它为你提供了设置你自己的面包屑视图文件的选择。
致谢
该包的原始作者是 Dwight Watson。该包受到了 Dave James Miller 的工作的启发,我已经使用它一段时间了。它从头开始重写,以适应我的用例,添加了一些魔法,减少了定制,并利用了 PHP 的一些新功能。感谢 Dave 的辛勤工作。