当前位置 : 首页 » 互动问答 » 正文

Yii 2.0高级模板后端的静态菜单

分类 : 互动问答 | 发布时间 : 2015-10-31 15:32:24 | 评论 : 1 | 浏览 : 181 | 喜欢 : 0

我使用的是Yii 2.0高级模板,在后端需要这样的东西:

enter image description here

左侧的菜单应该包含项目,当点击这些项目时,相应的页面将在右侧打开。左侧的菜单应该是静态的,并且在点击项目时不会失去焦点。

这意味着我可能需要使用部分视图?有一些扩展/小部件正在做我需要的吗?我是Yii的新人,所以我真的不知道如何解决这个问题。任何建议或想法将不胜感激。我相信我不是唯一需要Yii的人,但是在google上找不到。

回答(1)

  • 1楼
  • 我认为最简单的方法是使用布局。您可以使用左侧的菜单和页面其余部分的主页面定义布局。

    这可以是一个布局示例,例如:'mylayout.php'

     <?php
    使用yii \ helpers \ Html;
    使用yii \ bootstrap \ Nav;
    使用yii \ bootstrap \ NavBar;
    使用yii \ widgets \ Breadcrumbs;
    使用前端\资产\ AppAsset;
    
    / * @var $ this \ yii \ web \ View * /
    / * @var $ content string * /
    
    AppAsset ::寄存器($本);
    ?>
    <?php $ this-> beginPage()?>
    <!DOCTYPE html>
    <html lang =“<?= Yii :: $ app-> language?>”>
    <HEAD>
        <meta charset =“<?= Yii :: $ app-> charset?>”>
        <meta name =“viewport”content =“width = device-width,initial-scale = 1”>
        <link rel =“shortcut icon”href =“<?php echo Yii :: $ app-> request-> baseUrl;?> / dfenx.ico”type =“image / x-icon”/>
        <?= Html :: csrfMetaTags()?>
        <title> <?= Html :: encode($ this-> title)?> </ title>
        <?php $ this-> head()?>
    </ HEAD>
    <BODY>
        <?php $ this-> beginBody()?>
        <div class =“wrap”>
            <?PHP
                的NavBar ::开始([
                    'brandLabel'=> $ this-> title = Yii :: $ app-> name,
                    'brandUrl'=> Yii :: $ app-> homeUrl,
                    'brandOptions'=> [
                        'style'=>'font-family:palatino;字体大小:24px的;”
                    ]
                    'options'=> [
                        //'class'=>'navbar-inverse navbar-fixed-top',
                        'class'=>'navbar-default navbar-fixed-top',
                    ]
                ]);
                $ menuItems = [
                    ['label'=>'Home','url'=> ['/ site / index']],
                    ['label'=>'关于','url'=> ['/ site / about']],
                    ['label'=>'联系','url'=> ['/ site / contact']],
                ]。
                if(Yii :: $ app-> user-> isGuest){
                    $ menuItems [] = ['label'=>'注册','url'=> ['/ user / register']];
                    $ menuItems [] = ['label'=>'Login','url'=> ['/ user / login']];
                } else {
                    $ menuItems [] = [
                        'label'=>'注销('。Yii :: $ app-> user-> identity-> username。')',
                        'url'=> ['/ user / logout'],
                        'linkOptions'=> ['data-method'=>'post']
                    ]。
                }
                echo Nav :: widget([
                    'options'=> ['class'=>'navbar-nav navbar-right'],
                    'items'=> $ menuItems,
                ]);
                的NavBar ::端();
            ?>
    
            <div class =“container”>
            <?= Breadcrumbs :: widget([
                'links'=> isset($ this-> params ['breadcrumbs'])? $ this-> params ['breadcrumbs']:[],
            ])?>
                <div class ='col-lg-3 col-md-3'>
                        <! - 在这里你的左边菜单 - >
                </ DIV>
                 <div class ='col-lg-9 col-md-9'>
                    <! - 这里是你的内容页面 - >
                    <?= $ content?>
                </ DIV>
            </ DIV>
        </ DIV>
    
        <footer class =“footer”>
            <div class =“container”>
            <p class =“pull-left”>&copy;数字FenX <?=日期('Y')?> </ p>
            <p class =“pull-right”> <?php // Yii :: powered()?> </ p>
            </ DIV>
        </页脚>
    
        <?php $ this-> endBody()?>
    </ BODY>
    </ HTML>
    <?php $ this-> endPage()?>
    

    在控制器中,您可以通过这种方式设置要使用的布局

     public function actionYourAction()
    {
    
       $ this-> layout ='mylayout';
       返回$ this-> render(ourView',[
            'model'=> $ model,
            'dataProvider'=> $ provider,
        ]);
    }

相关阅读: