4
A
回答
5
的问题是definetely太广,但这里是解决方案,我用:
<?php
namespace backend\modules\tests\components;
use yii\helpers\ArrayHelper;
use yii\web\Controller as BaseController;
use yii\web\View;
class Controller extends BaseController
{
/**
* @inheritdoc
*/
public function beforeAction($action)
{
if (parent::beforeAction($action)) {
Yii::$app->view->on(View::EVENT_BEGIN_BODY, function() {
$this->fillBreadcrumbs();
});
return true;
} else {
return false;
}
}
/**
* Fill common breadcrumbs
*/
protected function fillBreadcrumbs()
{
$breadcrumbs = [];
// Add needed elements to $breadcrumbs below
$label = 'Tests';
$breadcrumbs[] = $this->route == '/tests/default/index' ? $label : [
'label' => $label,
'url' => ['/tests/default/index'],
];
// ...
$this->mergeBreadCrumbs($breadcrumbs);
}
/**
* Prepend common breadcrumbs to existing ones
* @param array $breadcrumbs
*/
protected function mergeBreadcrumbs($breadcrumbs)
{
$existingBreadcrumbs = ArrayHelper::getValue($this->view->params, 'breadcrumbs', []);
$this->view->params['breadcrumbs'] = array_merge($breadcrumbs, $existingBreadcrumbs);
}
}
正如你所看到的,它是基于视图事件和自定义控制器(从yii\web\Controller
延伸)。
接下来你需要的是从自定义控制器扩展需要的控制器。
相关问题
- 1. Drupal的面包屑和模块
- 2. 在Symfony2中构建面包屑
- 3. 构建面包屑的方法
- 4. 覆盖setResponsePage()构建面包屑导航
- 5. 为Moodle创建自定义面包屑
- 6. 面包屑移动页面
- 7. 角面包屑:包括下拉动态改变的面包屑
- 8. 面包屑设计模式
- 9. 面包屑模式实现
- 10. 创建“导航面包屑”
- 11. 动态宽度面包屑
- 12. PHP动态面包屑
- 13. 动态面包屑与primefaces
- 14. 如何使primefaces面包屑动态?
- 15. 用于创建与每个面包屑链接的面包屑的Javascript?
- 16. 面包屑。 ZF2
- 17. asp.net面包屑
- 18. asp.net面包屑
- 19. 如何自动构建MEF模块?
- 20. Laravel面包屑包找不到自定义模板
- 21. PHP中面包屑的数组结构
- 22. 动态显示素面面包屑
- 23. 修改activeadmin模块以隐藏面包屑
- 24. 如何在anible jenkins_script模块中提供有效的面包屑
- 25. 用PHP脚本面包屑
- 26. 使用ZF2动态页面面包屑执行
- 27. 笨在用自动面包屑助手的URL加密密钥
- 28. 面包屑在OSClass
- 29. 面包屑Symfony的
- 30. 简单面包屑
这个问题并不广泛 - 它非常简单。我将改为: “您如何在Module文件中设置面包屑,以便您不必在模块(模型/控制器/视图)中放置重复的块?” 您提供的信息有用,但没有解决这个问题。 – nssmart