Inhaltsverzeichnis
解决yii2左侧菜单子级无法高亮问题的方法,yii2菜单子
Heim php教程 php手册 解决yii2左侧菜单子级无法高亮问题的方法,yii2菜单子

解决yii2左侧菜单子级无法高亮问题的方法,yii2菜单子

Jun 13, 2016 am 08:41 AM
yii2 菜单 Hervorheben

解决yii2左侧菜单子级无法高亮问题的方法,yii2菜单子

我们先来看看具体问题。
添加角色是属于角色这个菜单的,如何在执行添加角色这个操作时让角色这个菜单处于选中状态呢?
adminlte左侧导航的Create,View等action不能定位到index的模块(左侧二级导航不能展开定位)
如果你是按照我们上文的教程来的,那接下来所要说明的问题应该不是问题,先来看看我们当时是怎么处理左侧菜单menu的

use mdm\admin\components\MenuHelper; 
<&#63;php 
$callback = function($menu){ 
 //鉴于篇幅有限,这里的代码省略,源码见于原文
}; 
//这里我们对一开始写的菜单menu进行了优化
echo dmstr\widgets\Menu::widget( [ 
 'options' => ['class' => 'sidebar-menu'], 
 'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback), 
] ); &#63;>
Nach dem Login kopieren

看到这里,我们不妨打开文件dmstr\widgets\Menu看看这里是怎么实现左侧菜单选中这一困扰众多同学的问题。

protected function isItemActive($item)
{
 if (isset($item['url']) && is_array($item['url']) && isset($item['url'][0])) {
  //......
  if ($arrayRoute[0] !== $arrayThisRoute[0]) {
   return false;
  }
  if (isset($arrayRoute[1]) && $arrayRoute[1] !== $arrayThisRoute[1]) {
   return false;
  }
  if (isset($arrayRoute[2]) && $arrayRoute[2] !== $arrayThisRoute[2]) {
   return false;
  }
  //......
  return true;
 }
 return false;
}
Nach dem Login kopieren

看吧,看上面的代码,也就是说左侧菜单激活的情况是当前路由完全等于菜单路由时菜单才进行激活。

鉴于我们一开始谈到的不少小伙伴疑惑的两个问题,我们这里只需要稍稍调整下代码,判断控制到controller而非action即可,但是源码文件我们又不能修改,怎么办好呢?天热,凉拌。

这里我们拷贝dmstr\widgets\Menu.php文件到backend\components\Menu.php,然后按照下面的方法修改isItemActive方法即可

protected function isItemActive($item)
{
 if (isset($item['url']) && is_array($item['url']) && isset($item['url'][0])) {
  
  //......


  //改写了路由的规则,是否高亮判断到controller而非action
  $routeCount = count($arrayRoute);
  if ($routeCount == 2) {
   if ($arrayRoute[0] !== $arrayThisRoute[0]) {
    return false;
   }
  } elseif ($routeCount == 3) {
   if ($arrayRoute[0] !== $arrayThisRoute[0]) {
    return false;
   }
   if (isset($arrayRoute[1]) && $arrayRoute[1] !== $arrayThisRoute[1]) {
    return false;
   }
  } else {
   return false;
  }


  // if ($arrayRoute[0] !== $arrayThisRoute[0]) {
  //  return false;
  // }
  // if (isset($arrayRoute[1]) && $arrayRoute[1] !== $arrayThisRoute[1]) {
  //  return false;
  // }
  // if (isset($arrayRoute[2]) && $arrayRoute[2] !== $arrayThisRoute[2]) {
  //  return false;
  // }
  
  //......
  
  return true;
 }
 return false;
}
Nach dem Login kopieren

大功告成,现在我们左侧的菜单引用的Menu文件修改其指向到backend\components\Menu

use backend\components\Menu;
echo Menu::widget([
 'options' => ['class' => 'sidebar-menu'],
 'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback),
]); 
Nach dem Login kopieren

快去试试看我们的问题解决没有吧。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Windows 11: Der einfache Weg, Startlayouts zu importieren und zu exportieren Windows 11: Der einfache Weg, Startlayouts zu importieren und zu exportieren Aug 22, 2023 am 10:13 AM

In Windows 11 wurde das Startmenü neu gestaltet und verfügt über einen vereinfachten Satz von Apps, die in einem Seitenraster angeordnet sind, im Gegensatz zum Vorgänger, der Ordner, Apps und Apps im Startmenü hatte. Sie können das Startmenü-Layout anpassen und es auf andere Windows-Geräte importieren und exportieren, um es nach Ihren Wünschen zu personalisieren. In dieser Anleitung besprechen wir Schritt-für-Schritt-Anleitungen zum Importieren des Startlayouts, um das Standardlayout unter Windows 11 anzupassen. Was ist Import-StartLayout in Windows 11? „Startlayout importieren“ ist ein Cmdlet, das in Windows 10 und früheren Versionen zum Importieren von Anpassungen für das Startmenü verwendet wird

So stellen Sie im Rechtsklick-Menü von Windows 11 standardmäßig „Weitere Optionen anzeigen' ein So stellen Sie im Rechtsklick-Menü von Windows 11 standardmäßig „Weitere Optionen anzeigen' ein Jul 10, 2023 pm 12:33 PM

Eine der nervigsten Änderungen, die wir Benutzer nie wollen, ist die Aufnahme von „Weitere Optionen anzeigen“ in das Kontextmenü mit der rechten Maustaste. Sie können es jedoch entfernen und erhalten das klassische Kontextmenü in Windows 11 zurück. Kein Mehrfachklicken und Suchen nach diesen ZIP-Verknüpfungen in Kontextmenüs mehr. Befolgen Sie diese Anleitung, um unter Windows 11 zu einem vollständigen Kontextmenü mit der rechten Maustaste zurückzukehren. Fix 1 – CLSID manuell anpassen Dies ist die einzige manuelle Methode auf unserer Liste. Sie müssen bestimmte Schlüssel oder Werte im Registrierungseditor anpassen, um dieses Problem zu beheben. Hinweis – Registrierungsänderungen wie diese sind sehr sicher und funktionieren problemlos. Daher sollten Sie eine Sicherung der Registrierung erstellen, bevor Sie dies auf Ihrem System versuchen. Schritt 1 – Probieren Sie es aus

So entfernen Sie die Option „Im Windows-Terminal öffnen' aus dem Kontextmenü mit der rechten Maustaste in Windows 11 So entfernen Sie die Option „Im Windows-Terminal öffnen' aus dem Kontextmenü mit der rechten Maustaste in Windows 11 Apr 13, 2023 pm 06:28 PM

Standardmäßig verfügt das Kontextmenü von Windows 11 per Rechtsklick über eine Option namens „Im Windows-Terminal öffnen“. Dies ist eine sehr nützliche Funktion, die es Benutzern ermöglicht, Windows Terminal an einem bestimmten Ort zu öffnen. Wenn Sie beispielsweise mit der rechten Maustaste auf einen Ordner klicken und die Option „Im Windows-Terminal öffnen“ auswählen, wird Windows-Terminal gestartet und legt diesen bestimmten Speicherort als aktuelles Arbeitsverzeichnis fest. Obwohl dies eine großartige Funktion ist, findet nicht jeder Verwendung für diese Funktion. Einige Benutzer möchten diese Option möglicherweise einfach nicht in ihrem Rechtsklick-Kontextmenü haben und möchten sie entfernen, um ihr Rechtsklick-Kontextmenü aufzuräumen.

So bearbeiten Sie Nachrichten auf dem iPhone So bearbeiten Sie Nachrichten auf dem iPhone Dec 18, 2023 pm 02:13 PM

Mit der nativen Nachrichten-App auf dem iPhone können Sie gesendete Texte ganz einfach bearbeiten. Auf diese Weise können Sie Ihre Fehler und Zeichensetzung korrigieren und sogar falsche Phrasen/Wörter, die möglicherweise in Ihren Text übernommen wurden, automatisch korrigieren. In diesem Artikel erfahren Sie, wie Sie Nachrichten auf dem iPhone bearbeiten. So bearbeiten Sie Nachrichten auf dem iPhone. Erforderlich: iPhone mit iOS16 oder höher. Sie können iMessage-Text nur in der Nachrichten-App bearbeiten, und zwar nur innerhalb von 15 Minuten nach dem Senden des Originaltexts. Nicht-iMessage-Text wird nicht unterstützt und kann daher nicht abgerufen oder bearbeitet werden. Starten Sie die Nachrichten-App auf Ihrem iPhone. Wählen Sie unter „Nachrichten“ die Konversation aus, deren Nachricht Sie bearbeiten möchten

Implementierungsschritte zur Implementierung der Menünavigationsleiste mit Schatteneffekt mithilfe von reinem CSS Implementierungsschritte zur Implementierung der Menünavigationsleiste mit Schatteneffekt mithilfe von reinem CSS Oct 16, 2023 am 08:27 AM

Die Schritte zum Implementieren einer Menünavigationsleiste mit Schatteneffekt mithilfe von reinem CSS erfordern spezifische Codebeispiele. Im Webdesign ist die Menünavigationsleiste ein sehr häufiges Element. Durch das Hinzufügen eines Schatteneffekts zur Menünavigationsleiste können Sie nicht nur deren Ästhetik verbessern, sondern auch das Benutzererlebnis verbessern. In diesem Artikel verwenden wir reines CSS, um eine Menünavigationsleiste mit Schatteneffekt zu implementieren, und stellen spezifische Codebeispiele als Referenz bereit. Die Implementierungsschritte sind wie folgt: HTML-Struktur erstellen Zuerst müssen wir eine grundlegende HTML-Struktur erstellen, um die Menünavigationsleiste aufzunehmen. von

So deaktivieren Sie das Menü „Weitere Optionen anzeigen' in Windows 11 So deaktivieren Sie das Menü „Weitere Optionen anzeigen' in Windows 11 Apr 13, 2023 pm 08:10 PM

Immer mehr Menschen erleben das neue und verbesserte Microsoft-Betriebssystem, aber es scheint, dass einige von ihnen immer noch das Design der alten Schule bevorzugen. Es besteht kein Zweifel, dass das neue Kontextmenü eine beeindruckende Konsistenz in Windows 11 bringt. Wenn wir Windows 10 betrachten, sorgt die Tatsache, dass jede Anwendung über ein eigenes Kontextmenüelement verfügt, bei manchen Menschen für große Verwirrung. Von der transparenten Taskleiste von Windows 11 bis zu den abgerundeten Ecken ist dieses Betriebssystem ein Meisterwerk. In diesem Zusammenhang sind Benutzer auf der ganzen Welt daran interessiert, zu erfahren, wie sie das Menü „Weitere Optionen anzeigen“ von Windows 11 schnell deaktivieren können. Der Vorgang ist ziemlich einfach. Wenn Sie also im selben Boot sitzen, sollten Sie ihn unbedingt gründlich ausprobieren

So entfernen Sie Jquery in yii2 So entfernen Sie Jquery in yii2 Feb 17, 2023 am 09:55 AM

So entfernen Sie jquery aus yii2: 1. Bearbeiten Sie die Datei AppAsset.php und kommentieren Sie den Wert „yii\web\YiiAsset“ in der Variablen $depends aus. 2. Bearbeiten Sie die Datei main.php und fügen Sie die Konfiguration als „'yii“ hinzu. unter dem Feld „components“ \web\JqueryAsset' => ['js' => [],'sourcePath' => null,]“, um das JQuery-Skript zu entfernen.

Schritte zum Implementieren des schwebenden Effekts der Menünavigationsleiste mithilfe von reinem CSS Schritte zum Implementieren des schwebenden Effekts der Menünavigationsleiste mithilfe von reinem CSS Oct 19, 2023 am 10:13 AM

Schritte zur Implementierung des schwebenden Effekts der Menünavigationsleiste mithilfe von reinem CSS Mit der kontinuierlichen Weiterentwicklung des Webdesigns werden die Anforderungen der Benutzer an Websites immer höher. Um ein besseres Benutzererlebnis zu bieten, wird der Suspensionseffekt häufig im Website-Design eingesetzt. In diesem Artikel wird erläutert, wie Sie mithilfe von reinem CSS den schwebenden Effekt der Menünavigationsleiste erzielen und so die Benutzerfreundlichkeit und Ästhetik der Website verbessern. Erstellen Sie die grundlegende Menüstruktur. Zuerst müssen wir die grundlegende Struktur des Menüs im HTML-Dokument erstellen. Hier ist ein einfaches Beispiel: &lt;navclass=&q

See all articles