欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決yii2左側(cè)菜單子級無法高亮問題的方法

 更新時間:2016年05月08日 18:23:19   作者:白狼棧  
這篇文章主要為大家詳細介紹了解決yii2左側(cè)菜單子級無法高亮問題的方法,感興趣的朋友可以參考一下

我們先來看看具體問題。
添加角色是屬于角色這個菜單的,如何在執(zhí)行添加角色這個操作時讓角色這個菜單處于選中狀態(tài)呢?
adminlte左側(cè)導(dǎo)航的Create,View等action不能定位到index的模塊(左側(cè)二級導(dǎo)航不能展開定位)
如果你是按照我們上文的教程來的,那接下來所要說明的問題應(yīng)該不是問題,先來看看我們當時是怎么處理左側(cè)菜單menu的

use mdm\admin\components\MenuHelper; 
<?php 
$callback = function($menu){ 
 //鑒于篇幅有限,這里的代碼省略,源碼見于原文
}; 
//這里我們對一開始寫的菜單menu進行了優(yōu)化
echo dmstr\widgets\Menu::widget( [ 
 'options' => ['class' => 'sidebar-menu'], 
 'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback), 
] ); ?>

看到這里,我們不妨打開文件dmstr\widgets\Menu看看這里是怎么實現(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è)菜單激活的情況是當前路由完全等于菜單路由時菜單才進行激活。

鑒于我們一開始談到的不少小伙伴疑惑的兩個問題,我們這里只需要稍稍調(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),
]); 

快去試試看我們的問題解決沒有吧。

相關(guān)文章

  • 基于php緩存的詳解

    基于php緩存的詳解

    本篇文章是對php中的緩存進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 實例講解php將字符串輸出到HTML

    實例講解php將字符串輸出到HTML

    在本篇文章里小編給大家分享了關(guān)于php將字符串輸出到HTML的相關(guān)知識點內(nèi)容,有需要的朋友們學(xué)習(xí)下。
    2019-01-01
  • thinkphp框架page類與bootstrap分頁(美化)

    thinkphp框架page類與bootstrap分頁(美化)

    這篇文章主要介紹了thinkphp框架page類與bootstrap分頁(美化) ,需要的朋友可以參考下
    2017-06-06
  • Yii框架在頁面輸出執(zhí)行sql語句以方便調(diào)試的實現(xiàn)方法

    Yii框架在頁面輸出執(zhí)行sql語句以方便調(diào)試的實現(xiàn)方法

    這篇文章主要介紹了Yii框架在頁面輸出執(zhí)行sql語句以方便調(diào)試的實現(xiàn)方法,涉及yiidebugtb的使用,是比較實用的技巧,需要的朋友可以參考下
    2014-12-12
  • 詳解Laravel5.6通過路由進行API版本控制的簡單方法

    詳解Laravel5.6通過路由進行API版本控制的簡單方法

    這篇文章主要介紹了詳解Laravel5.6通過路由進行API版本控制的簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Yii2實現(xiàn)增刪改查后留在當前頁的方法詳解

    Yii2實現(xiàn)增刪改查后留在當前頁的方法詳解

    yii2.0框架是PHP開發(fā)的一個比較高效率的框架,集合了作者的大量心血,下面這篇文章主要介紹了Yii2如何實現(xiàn)增刪改查后仍留在當前頁的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • phalcon框架使用指南

    phalcon框架使用指南

    Phalcon是一款php中國外非常的流程的框架了,但在國內(nèi)Phalcon框架還不怎么樣了,小編今天來為各位介紹phalcon框架使用教程,希望下文可以幫助到各位
    2016-02-02
  • Laravel重寫用戶登錄簡單示例

    Laravel重寫用戶登錄簡單示例

    這篇文章主要介紹了Laravel重寫用戶登錄的方法,結(jié)合簡單實例形式分析了Laravel框架根據(jù)已有的login方法重寫實現(xiàn)針對驗證碼、后臺登陸頻率及日志記錄的擴種等功能,需要的朋友可以參考下
    2016-10-10
  • php mysql數(shù)據(jù)庫操作類(實例講解)

    php mysql數(shù)據(jù)庫操作類(實例講解)

    本白演示的代碼屬于較為簡單的數(shù)據(jù)庫封裝類,較適合初學(xué),需要的朋友可以參考下
    2017-08-08
  • Yii框架自定義數(shù)據(jù)庫操作組件示例

    Yii框架自定義數(shù)據(jù)庫操作組件示例

    這篇文章主要介紹了Yii框架自定義數(shù)據(jù)庫操作組件,結(jié)合實例形式分析了Yii自定義數(shù)據(jù)庫操作組件的原理與實現(xiàn)方法,需要的朋友可以參考下
    2019-11-11

最新評論