yii2 breadcrumbs

yii2 - Construyendo migas de pan automáticamente con módulos



breadcrumbs (1)

La pregunta es definitivamente demasiado amplia, pero aquí está la solución que utilicé:

<?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); } }

Como puede ver, se basa en ver eventos y un controlador personalizado (que se extiende desde yii/web/Controller ).

Todo lo que necesita a continuación es extender los controladores necesarios desde uno personalizado.

Mi página web tiene varios módulos, y quiero saber si hay una manera de agregar rutas de navegación a la URL de inicio de los módulos, sin tener que agregar manualmente a todos los archivos. ex:

Home > MyModule > MyController