jasonstainton / breadcrumbs
Laravel 的面包屑生成器。
1.0.0
2017-05-30 08:51 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-25 01:26:55 UTC
README
轻松从模型或视图生成面包屑。
安装
将以下内容添加到您项目中的 composer.json 文件中
"jasonstainton/breadcrumbs": "1.*"
或者您可以在项目的根目录下通过命令行运行以下命令
composer require jasonstainton/breadcrumbs "1.*"
将服务提供者添加到 config/app.php 文件中的 providers 数组中。
'providers' => [
// ...
JasonStainton\Breadcrumbs\Providers\BreadcrumbsServiceProvider::class,
],
面包屑指令
@breadcrumbs()
通常,您会将此添加到任何您希望显示面包屑的部分中。
实现
您可以为模型动态添加面包屑,或者手动在视图中添加。每个方法都期望返回一个包含您希望添加的面包屑的数组。键应是一个完全限定的 URL(http://www.)和一个包含您希望显示的文本的字符串值。
通过模型
在您的模型上实现面包屑合约。
use JasonStainton\Breadcrumbs\Contracts\BreadcrumbContract;
class Model implements BreadcrumbContract
{
...
这将需要您在模型中添加一个 getCrumbs() 方法,并期望返回一个数组。
public function getCrumbs()
{
return [
'http://www.example.com/page' => 'Example Crumb',
route('blog') => 'Blog',
$this->url => $this->title
];
}
现在您只需要将您的模型传递给面包屑指令。
@breadcrumbs($model)
通过视图
如果未使用模型,您可以在指令中手动设置面包屑。同样,您只需要传递一个数组。
@breadcrumbs([
'http://www.example.com/page' => 'Example Crumb',
route('blog') => 'Blog'
])
配置
要使用自定义模板或修改任何预置面包屑,请在项目根目录下运行以下命令行
$ php artisan vendor:publish --provider="JasonStainton\Breadcrumbs\Providers\BreadcrumbsServiceProvider"
要仅发布视图或配置文件,您可以在命令中添加以下标记
$ php artisan vendor:publish --provider="JasonStainton\Breadcrumbs\Providers\BreadcrumbsServiceProvider" --tag="config"
$ php artisan vendor:publish --provider="JasonStainton\Breadcrumbs\Providers\BreadcrumbsServiceProvider" --tag="views"
自定义模板
您可以根据需要轻松编辑面包屑的外观。发布视图资产后,您将找到当调用面包屑指令时返回的面包屑视图。
/resources/views/vendor/breadcrumbs/breadcrumbs.blade.php
@if(isset($breadcrumbs))
@foreach($breadcrumbs as $url => $name)
@if($url == url()->current())
<span>{{ $name }}</span>
@else
<a href="{{ $url }}">{{ $name }}</a> »
@endif
@endforeach
@endif
预置面包屑
默认情况下,面包屑总是带有主页链接面包屑返回。您可以选择删除它以在调用面包屑或添加到时获得最大灵活性。发布包的配置文件后,您可以删除主页链接或向其添加更多。
/config/breadcrumbs.php
'prepended_breadcrumbs' => [
'/' => 'Home'
],
期望返回一个数组。因此,如果您想删除主页面包屑,只需返回一个空数组即可。