diglaca/laravel breadcrumbs有没有其他方法可以把面包屑写出来,而不是全部写进面包屑文件



我从文档之后的路线开始使用一些面包屑

Create a file called routes/breadcrumbs.php that looks like this:
<?php
// Home
Breadcrumbs::for('home', function ($trail) {
$trail->push('Home', route('home'));
});
// Home > About
Breadcrumbs::for('about', function ($trail) {
$trail->parent('home');
$trail->push('About', route('about'));
});
// Home > Blog
Breadcrumbs::for('blog', function ($trail) {
$trail->parent('home');
$trail->push('Blog', route('blog'));
});
// Home > Blog > [Category]
Breadcrumbs::for('category', function ($trail, $category) {
$trail->parent('blog');
$trail->push($category->title, route('category', $category->id));
});
// Home > Blog > [Category] > [Post]
Breadcrumbs::for('post', function ($trail, $post) {
$trail->parent('category', $post->category);
$trail->push($post->title, route('post', $post->id));
});

它很酷而且很管用。。。但我无法想象如果你有100多个面包屑,会把所有的面包屑都写进那个文件

看起来像是反模式!?

也许有人使用了这个包,并且知道如何避免像文档所说的那样将所有的面包屑写入单个文件的解决方案?

Laravel Breadcrumbs的维护人员。

这是一个常见的问题。最优雅的解决方案是利用宏来获取资源丰富的路线。

Breadcrumbs::macro('resource', function (string $name, string $title) {
Breadcrumbs::for("{$name}.index"...
Breadcrumbs::for("{$name}.create"...
Breadcrumbs::for("{$name}.show"...
Breadcrumbs::for("{$name}.edit"...
});

然后,你可以使用这个快捷方式,比如:

Breadcrumbs::resource('blog', 'Blog');

希望能有所帮助。对如何改进图书馆持开放态度。欢迎在GitHub上开始讨论,这样更容易引起我的注意!

最新更新