解決yii2左側(cè)菜單子級(jí)無法高亮問題的方法,yii2菜單子_PHP教程
Jul 12, 2016 am 08:53 AM解決yii2左側(cè)菜單子級(jí)無法高亮問題的方法,yii2菜單子
我們先來看看具體問題。
添加角色是屬于角色這個(gè)菜單的,如何在執(zhí)行添加角色這個(gè)操作時(shí)讓角色這個(gè)菜單處于選中狀態(tài)呢?
adminlte左側(cè)導(dǎo)航的Create,View等action不能定位到index的模塊(左側(cè)二級(jí)導(dǎo)航不能展開定位)
如果你是按照我們上文的教程來的,那接下來所要說明的問題應(yīng)該不是問題,先來看看我們當(dāng)時(shí)是怎么處理左側(cè)菜單menu的
use mdm\admin\components\MenuHelper; <?php $callback = function($menu){ //鑒于篇幅有限,這里的代碼省略,源碼見于原文 }; //這里我們對(duì)一開始寫的菜單menu進(jìn)行了優(yōu)化 echo dmstr\widgets\Menu::widget( [ 'options' => ['class' => 'sidebar-menu'], 'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback), ] ); ?>
看到這里,我們不妨打開文件dmstr\widgets\Menu看看這里是怎么實(shí)現(xiàn)左側(cè)菜單選中這一困擾眾多同學(xué)的問題。
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; }
看吧,看上面的代碼,也就是說左側(cè)菜單激活的情況是當(dāng)前路由完全等于菜單路由時(shí)菜單才進(jìn)行激活。
鑒于我們一開始談到的不少小伙伴疑惑的兩個(gè)問題,我們這里只需要稍稍調(diào)整下代碼,判斷控制到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])) { //...... //改寫了路由的規(guī)則,是否高亮判斷到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; }
大功告成,現(xiàn)在我們左側(cè)的菜單引用的Menu文件修改其指向到backend\components\Menu
use backend\components\Menu; echo Menu::widget([ 'options' => ['class' => 'sidebar-menu'], 'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback), ]);
快去試試看我們的問題解決沒有吧。

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

在Windows11中,「開始」功能表經(jīng)過重新設(shè)計(jì),並具有一組簡(jiǎn)化的應(yīng)用,這些應(yīng)用程式排列在頁面網(wǎng)格中,這與它的前身不同,後者在「開始」功能表上有資料夾、應(yīng)用程式和組。您可以自訂「開始」功能表佈局,並將其匯入並匯出至其他Windows設(shè)備,以根據(jù)您的喜好進(jìn)行個(gè)人化設(shè)定。在本指南中,我們將討論在Windows11上匯入開始佈局以自訂預(yù)設(shè)佈局的逐步說明。什麼是Windows11中的Import-StartLayout?導(dǎo)入開始佈局是Windows10和更早版本中使用的cmdlet,用於將「開始」功能表的自定

我們用戶從來不想要的最煩人的更改之一是在右鍵單擊上下文功能表中包含“顯示更多選項(xiàng)”。但是,您可以刪除它並取回Windows11中的經(jīng)典上下文功能表。不再需要多次點(diǎn)擊並在上下文選單中尋找這些ZIP捷徑。請(qǐng)依照本指南返回Windows11上成熟的右鍵點(diǎn)選上下文功能表。修復(fù)1–手動(dòng)調(diào)整CLSID這是我們清單中唯一的手動(dòng)方法。您將在登錄編輯器中調(diào)整特定鍵或值以解決此問題。注意–像這樣的註冊(cè)表編輯非常安全,並且可以正常工作。因此,在系統(tǒng)上嘗試此操作之前,您應(yīng)該建立註冊(cè)表備份。步驟1–嘗試

純CSS實(shí)現(xiàn)帶有陰影效果的選單導(dǎo)覽列的實(shí)現(xiàn)步驟,需要具體程式碼範(fàn)例在網(wǎng)頁設(shè)計(jì)中,選單導(dǎo)覽列是一個(gè)非常常見的元素。透過為選單導(dǎo)覽列添加陰影效果,不僅可以增加其美觀度,還可以提升使用者體驗(yàn)。在本文中,我們將使用純CSS來實(shí)現(xiàn)一個(gè)帶有陰影效果的選單導(dǎo)覽欄,並提供具體的程式碼範(fàn)例供參考。實(shí)作步驟如下:建立HTML結(jié)構(gòu)首先,我們需要建立一個(gè)基本的HTML結(jié)構(gòu)來容納選單導(dǎo)覽列。以

預(yù)設(shè)情況下,Windows 11 右鍵單擊上下文功能表有一個(gè)名為Open in Windows Terminal的選項(xiàng)。這是一個(gè)非常有用的功能,可讓使用者在特定位置開啟 Windows 終端。例如,如果您右鍵單擊資料夾並選擇「在 Windows 終端機(jī)中開啟」選項(xiàng),則 Windows 終端將啟動(dòng)並將該特定位置設(shè)為其目前工作目錄。儘管這是一個(gè)了不起的功能,但並不是每個(gè)人都發(fā)現(xiàn)此功能的用途。一些用戶可能只是不希望在他們的右鍵單擊上下文功能表中使用此選項(xiàng),並且希望將其刪除以整理他們的右鍵單擊上下文菜

越來越多的人正在體驗(yàn)新的和改進(jìn)的微軟作業(yè)系統(tǒng),但似乎他們中的一些人仍然更喜歡老式的設(shè)計(jì)。毫無疑問,新的上下文功能表為 Windows 11 帶來了令人印象深刻的一致性。如果我們考慮 Windows 10,每個(gè)應(yīng)用程式都有自己的上下文選單元素這一事實(shí)給某些人造成了嚴(yán)重的混亂。從Windows 11 透明工作列到圓角,這款作業(yè)系統(tǒng)堪稱傑作。在這件事上,全球用戶有興趣了解如何快速停用 Windows 11 Show More Options 選單。這個(gè)過程非常簡(jiǎn)單,所以如果您在同一條船上,請(qǐng)確保您完全檢查

yii2去掉jquery的方法:1、編輯AppAsset.php文件,註解掉變數(shù)$depends裡的「yii\web\YiiAsset」值;2、編輯main.php文件,在欄位「components」下方新增配置為「'yii \web\JqueryAsset' => ['js' => [],'sourcePath' => null,],」即可去掉jquery腳本。

眾所周知,微軟在win11系統(tǒng)之中重做了開始選單,全新的開始選單不僅居中顯示了,而且更改了顯示的模式,清除了傳統(tǒng)的磁貼,所有應(yīng)用都採用了圖標(biāo)的方式顯示,但是很多朋友不知道怎麼開啟,下面就跟著小編一起來看下。 win11怎麼開啟新版開始功能表1、開始功能表是win11自備的,我們不需要手動(dòng)開啟。 2.大家如果發(fā)現(xiàn)自己安裝win11之後卻沒有新版的開始選單,那一定是下載了錯(cuò)誤的win11。3、如果大家想要使用這款新版開始選單,需要在本站重新下載一個(gè)win11。4、下載完成後,只要裝載該文件,然後運(yùn)行其

iPhone上的原生「訊息」應(yīng)用程式可讓您輕鬆編輯已傳送的文字。這樣,您可以糾正您的錯(cuò)誤、標(biāo)點(diǎn)符號(hào),甚至是自動(dòng)更正可能已應(yīng)用於您的文字的錯(cuò)誤短語/單字。在這篇文章中,我們將了解如何在iPhone上編輯訊息。如何在iPhone上編輯訊息必需:運(yùn)行iOS16或更高版本的iPhone。您只能在「訊息」應(yīng)用程式上編輯iMessage文本,並且只能在發(fā)送原始文字後的15分鐘內(nèi)編輯。不支援非iMessage資訊文本,因此無法檢索或編輯它們。在iPhone上啟動(dòng)訊息應(yīng)用程式。在「訊息」中,選擇要從中編輯訊息的對(duì)話
