yii2-tools / yii2-breadcrumbs-filter
为 Yii2 框架提供的过滤器,可自动将模块作为面包屑项添加
1.0.8
2016-04-09 11:27 UTC
Requires
- yiisoft/yii2: ~2.0.0
This package is auto-updated.
Last update: 2024-09-10 04:38:03 UTC
README
Yii2 ActionFilter,如果请求路由中存在模块的 ID,则会自动将模块添加为面包屑项。
安装
安装此扩展的最佳方式是通过 composer。
运行以下命令之一
$ composer require yii2-tools/yii2-breadcrumbs-filter:~1.0
或将以下内容添加到您的 composer.json
文件的 require
部分。
"yii2-tools/yii2-breadcrumbs-filter": "~1.0"
使用方法
将 行为附加到模块
public function behaviors() { return array_merge(parent::behaviors(), [ 'breadcrumbs' => [ 'class' => \yii\tools\filters\BreadcrumbsFilter::className(), ] ]); }
在视图文件中(可能是布局文件)
<div class="container"> <?= \yii\widgets\Breadcrumbs::widget([ 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], ]) ?> </div>
最佳实践
您可以通过扩展 yii\base\Module 来统一构建网站面包屑导航。这将确保所有请求路由中的模块都会在面包屑小部件中获得它们的位置。示例
use yii\base\Module as BaseModule; use yii\tools\filters\BreadcrumbsFilter; class Module extends BaseModule { /** * Module name * @var string */ public $name = 'My Module'; /** * Enable/Disable breadcrumbs natigation via app\components\filters\BreadcrumbsFilter * For module and submodules, without affects on parent module * @var bool */ public $breadcrumbs = true; /** * Array of [routes|controllers|actions] names which shouldn't have breadcrumbs * ['*'] means what breadcrumbs navigation disabled for all controllers and actions (direct childs) * For module and submodules, without affects on parent module * @var bool */ public $breadcrumbsExceptRoutes = []; /** * @inheritdoc */ public function behaviors() { $behaviors = []; if ($this->breadcrumbs) { $behaviors['breadcrumbs'] = [ 'class' => BreadcrumbsFilter::className(), 'label' => $this->name, 'defaultRoute' => $this->defaultRoute, 'exceptRoutes' => $this->breadcrumbsExceptRoutes, ]; } return array_merge(parent::behaviors(), $behaviors); } }
许可
MIT 许可证(MIT)。有关更多信息,请参阅许可文件。