Yii項(xiàng)目模板導(dǎo)航條添加下拉菜單

Yii提供了兩套項(xiàng)目模板缝其,兩個(gè)的導(dǎo)航條是基于Bootstrap框架的橫向風(fēng)格導(dǎo)航盗胀。默認(rèn)提供的形式很簡(jiǎn)單,不帶下拉菜單。為了更貼合實(shí)際項(xiàng)目需要外遇,整理了把默認(rèn)模板改造成帶下拉菜單導(dǎo)航條的步驟方法注簿,完成效果如圖。

火狐截圖_2017-03-16T08-43-16.771Z.png

注:本文檔所有編輯代碼都是在layout/main.php中跳仿。

準(zhǔn)備工作

確保引入下面二個(gè)類诡渴,Yii項(xiàng)目模板的layout/main.php默認(rèn)會(huì)帶。

use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;

添加導(dǎo)航條

通過(guò)Yii封裝的bootstrap\Nav在layout/main.php添加導(dǎo)航條區(qū)域菲语。

//其他代碼
<body>
NavBar::begin([
        'brandLabel' => 'easyapp',
        'brandUrl' => Yii::$app->homeUrl,
        'options' => [
            'class' => 'navbar-default navbar-fixed-top',
        ],
    ]);
//導(dǎo)航條項(xiàng)目區(qū)域
NavBar::end();
<?= $content ?>
</body>
//其他代碼

添加導(dǎo)航項(xiàng)目

使用Nav::widget創(chuàng)建導(dǎo)航條項(xiàng)目妄辩。

echo Nav::widget([
'options' => ['class' => 'nav navbar-nav '],
'items' => [

    ['label' =>  '產(chǎn)品', 'url' => ['/site/product'], 'active' => $productActive],
    ['label' =>  '解決方案', 'url' => ['/site/solution'], 'active' => $solutionActive],
    ['label' =>  '成功案例', 'url' => ['/site/case'], 'active' => $caseActive],
    ['label' =>  '幫助文檔', 'url' => ['/site/doc'], 'active' => $docActive],
    ['label' =>  '關(guān)于我們', 'url' => ['/site/about'], 'active' => $aboutActive],
  
],
'encodeLabels' => false
]);

上面的active參數(shù)控制是否為高亮。變量的定義在下面完整部分代碼中山上。

添加下拉導(dǎo)航項(xiàng)目

 Yii::$app->user->isGuest ? (
    ['label' => '登錄', 'url' => ['/site/login']]
    
) : (
    '<li class="dropdown">'
    . '<a href="#" class="dropdown-toggle" data-toggle="dropdown">
    ' . Yii::$app->user->identity->username . '
    <b class="caret"></b>
    </a>
    <ul class="dropdown-menu">
    <li><a href="#">賬戶信息</a></li>
    <li><a href="#">我的訂單</a></li>
    <li class="divider"></li>
    <li><a href="#">系統(tǒng)消息</a></li>
    <li class="divider"></li>
    <li><a href="/site/logout">退出系統(tǒng)</a></li>
    </ul></li>'
    )   
],        

visible參數(shù)判斷是否可見(jiàn)眼耀,這里是根據(jù)是否登錄來(lái)確認(rèn)的。

另外一種判斷是否登錄的方法佩憾,下拉菜單寫在了else代碼塊中哮伟。實(shí)際上把一段html代碼放入了items數(shù)組中。

全部導(dǎo)航項(xiàng)目

use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
---其他代碼
<body>
<?php $this->beginBody() ?>
    <?php
    $module = Yii::$app->controller->module->id;
    $controller = Yii::$app->controller->id;
    $action = Yii::$app->controller->action->id;

    $productActive = ($controller == 'product') ? true : false;
    $solutionActive = ($controller == 'solution') ? true : false;
    $caseActive = ($controller == 'case') ? true : false;
    $docActive = ($controller == 'doc') ? true : false;
    $aboutActive = ($controller == 'about') ? true : false;
    
    $consoleActive = ($controller == 'consoleActive') ? true : false;

    NavBar::begin([
        'brandLabel' => 'easyapp',
        'brandUrl' => Yii::$app->homeUrl,
        'options' => [
            'class' => 'navbar-default navbar-fixed-top',
        ],
    ]);
    
    echo Nav::widget([
    'options' => ['class' => 'nav navbar-nav '],
    'items' => [

        ['label' =>  '產(chǎn)品', 'url' => ['/site/product'], 'active' => $productActive],
        ['label' =>  '解決方案', 'url' => ['/site/solution'], 'active' => $solutionActive],
        ['label' =>  '成功案例', 'url' => ['/site/case'], 'active' => $caseActive],
        ['label' =>  '幫助文檔', 'url' => ['/site/doc'], 'active' => $docActive],
        ['label' =>  '關(guān)于我們', 'url' => ['/site/about'], 'active' => $aboutActive],
      
    ],
    'encodeLabels' => false
]);

    echo Nav::widget([
        'options' => ['class' => 'navbar-nav navbar-right'],
        'items' => [
          
            ['label' => '注冊(cè)', 'url' => ['/site/signup'],'visible'=>Yii::$app->user->isGuest],
            ['label' => '控制臺(tái)', 'url' => ['/console/home'],'active' => $consoleActive,'visible'=>!Yii::$app->user->isGuest],
           
            Yii::$app->user->isGuest ? (
                ['label' => '登錄', 'url' => ['/site/login']]
                
            ) : (
                '<li class="dropdown">'
                    . '<a href="#" class="dropdown-toggle" data-toggle="dropdown">
                    ' . Yii::$app->user->identity->username . '
                        <b class="caret"></b>
                    </a>
                    <ul class="dropdown-menu">
                        <li><a href="#">賬戶信息</a></li>
                        
                        <li><a href="#">我的訂單</a></li>
                        <li class="divider"></li>
                        <li><a href="#">系統(tǒng)消息</a></li>
                        <li class="divider"></li>
                        <li><a href="/site/logout">退出系統(tǒng)</a></li>
                    </ul></li>'
            )   
        ],
    ]);
    NavBar::end();
    ?>
 <?= $content ?>
</body>
---其他代碼

該導(dǎo)航條分了兩部分菜單鸯屿,左側(cè)是靜態(tài)頁(yè)面導(dǎo)航澈吨,右側(cè)導(dǎo)航用戶操作導(dǎo)航區(qū)域把敢。本文檔示例是在用戶導(dǎo)航部分添加了下拉菜單寄摆,下拉菜單包括賬戶信息,我的訂單修赞,系統(tǒng)消息和退出登錄婶恼。下拉菜單是在登錄后可見(jiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柏副,一起剝皮案震驚了整個(gè)濱河市勾邦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌割择,老刑警劉巖眷篇,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異荔泳,居然都是意外死亡蕉饼,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門玛歌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)昧港,“玉大人,你說(shuō)我怎么就攤上這事支子〈捶剩” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)叹侄。 經(jīng)常有香客問(wèn)我巩搏,道長(zhǎng),這世上最難降的妖魔是什么趾代? 我笑而不...
    開(kāi)封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任塔猾,我火速辦了婚禮,結(jié)果婚禮上稽坤,老公的妹妹穿的比我還像新娘丈甸。我一直安慰自己,他們只是感情好尿褪,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布睦擂。 她就那樣靜靜地躺著,像睡著了一般杖玲。 火紅的嫁衣襯著肌膚如雪顿仇。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天摆马,我揣著相機(jī)與錄音臼闻,去河邊找鬼。 笑死囤采,一個(gè)胖子當(dāng)著我的面吹牛述呐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蕉毯,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乓搬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了代虾?” 一聲冷哼從身側(cè)響起进肯,我...
    開(kāi)封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棉磨,沒(méi)想到半個(gè)月后江掩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乘瓤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年环形,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馅扣。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斟赚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出差油,到底是詐尸還是另有隱情拗军,我是刑警寧澤任洞,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站发侵,受9級(jí)特大地震影響交掏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜刃鳄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一盅弛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叔锐,春花似錦挪鹏、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至步责,卻和暖如春返顺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蔓肯。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工遂鹊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔗包。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓秉扑,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親气忠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邻储,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,262評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件旧噪、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,117評(píng)論 4 61
  • 我們總是想用任何一個(gè)詞匯或者一段文字去表達(dá)自己的感受和經(jīng)歷,卻不知道脓匿,其實(shí)那是沒(méi)有任何一個(gè)筆畫能解決的了的淘钟。
    濃濃的淺閱讀 134評(píng)論 0 1
  • 昨天晚上在導(dǎo)引下入睡毡琉,今天早上4:00起床铁瞒,4:20~6:00練字,如下: 晚上11:20~12:00桅滋,練字如下:...
    ZHICHENGWUXI閱讀 117評(píng)論 0 0
  • 童年是每個(gè)人的必經(jīng)之路慧耍,它充滿了新奇與興奮身辨,如同我們收到禮物時(shí),禮物帶給我們的神秘感芍碧。 童年是每...
    厲羽悠君閱讀 581評(píng)論 0 3