esign / laravel-breadcrumbs
管理Laravel应用程序中的面包屑
1.3.0
2024-03-12 21:59 UTC
Requires
- php: ^8.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- spatie/schema-org: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.0|^10.0
README
此包允许您管理和渲染Laravel应用程序中的面包屑。
安装
您可以通过composer安装此包
composer require esign/laravel-breadcrumbs
该包将自动注册服务提供者。
用法
您可以使用Breadcrumbs
外观从控制器开始添加面包屑。
use Esign\Breadcrumbs\Breadcrumb; use Esign\Breadcrumbs\Facades\Breadcrumbs; Breadcrumbs::add('Home', 'http://example.com'); Breadcrumbs::add(Breadcrumb::create('Home', 'http://example.com'));
一次性添加多个面包屑
use Esign\Breadcrumbs\Breadcrumb; use Esign\Breadcrumbs\Facades\Breadcrumbs; Breadcrumbs::add([ 'Home' => 'https://www.example.com', 'Blog' => null, ]); Breadcrumbs::add([ Breadcrumb::create('Home', 'https://www.example.com'), Breadcrumb::create('Blog'), ]);
您还可以预置面包屑。这可能在您始终想要添加一个主页面包屑时很有用
use Esign\Breadcrumbs\Breadcrumb; use Esign\Breadcrumbs\Facades\Breadcrumbs; Breadcrumbs::prepend('Home', route('home')); Breadcrumbs::prepend(Breadcrumb::create('Home', route('home')));
转换为JsonLd
要将面包屑转换为JSON-LD,您可以使用toJsonLd
方法。此方法将返回一个Spatie\SchemaOrg\BreadcrumbList
实例。
use Esign\Breadcrumbs\Facades\Breadcrumbs; Breadcrumbs::toJsonLd();
您可以将此实例转换为字符串以渲染实际的脚本标签
(string) Breadcrumbs::toJsonLd(); // <script type="application/ld+json">...</script>
渲染面包屑
此包附带一个视图组件来渲染您的面包屑路径
<x-breadcrumbs />
这将渲染以下HTML
use Esign\Breadcrumbs\Facades\Breadcrumbs; Breadcrumbs::add([ 'Home' => 'https://www.example.com', 'Blog' => null, ]);
<ol class="breadcrumbs"> <li class="breadcrumbs__item"> <a href="https://www.example.com" class="breadcrumbs__link">Home</a> </li> <li class="breadcrumbs__item">Blog</li> </ol>
自定义面包屑视图
如果您想自定义视图组件,可以发布这些视图
php artisan vendor:publish --provider="Esign\Breadcrumbs\BreadcrumbsServiceProvider" --tag="views"
测试
composer test
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。