twitter-bootstrap – Yii2 Advanced – 扩展视图以添加自定义变
我不确定我要用的是最好的Yii解决方案来处理这个问题.所以我愿意接受更好的解决方案.无论最简单的Yii方式是什么.
我有一个左侧边栏,只需要向登录的用户显示.这不是问题,我知道如何通过选中’Yii :: $app-> user-> isGuest’来显示. 在特定页面上,我不想要这个侧边栏,即使他们已登录.例如,“联系我们”页面不需要左侧边栏.我真的不在乎它是否有侧边栏,但它正在抛弃Bootstrap3列. <div class="row"> <div class="col-lg-4 center-col"> <div class="site-contact"> <h1><?= Html::encode($this->title) ?></h1> <p> If you have business inquiries or other questions,please fill out the following form to contact us. Thank you. </p> <div class="row"> <div class="col-lg-12"> [contact form code truncated] </div> </div> </div> </div> </div> 它看起来很棒,位于页面中间,4个宽. 但是,在我的Yii main.php(frontend / views / layouts / main.php)中,我有2个单独的布局,具体取决于用户是否已登录. <div class="container-fluid mainpage"> <?= Alert::widget() ?> <div class="row"> <?php if (!Yii::$app->user->isGuest) { ?> <div class="col-md-3 sidebar"> <?= Menu::widget([ 'options' => ['class' => 'nav nav-sidebar'],'items' => [ ['label' => 'Home','url' => ['site/index']],['label' => 'About','url' => ['site/about']],['label' => 'Contact','url' => ['site/contact']],],]); ?> </div> <div class="col-md-9"> <?= $content ?> </div> <?php } else { ?> <div class="col-sm-12"> <?= $content ?> </div> <?php } ?> </div> </div> 此代码显示全宽页面(如果是访客)或侧边栏(如果用户已登录). 在“联系我们”页面上发生的事情是由于侧边栏而导致的表格变得紧张.正确的内容是’col-md-9′,当你把联系表格放入其中时(有’col-lg-4′),它只会在9列中占据4个,导致它被碾压. 由于此页面(联系页面)应该是公开可见的(即:如果用户无法登录,他们将被搞砸并且无法联系支持人员),这两种情况都可能发生.它可以由登录的成员查看,从而产生碾压形式,或者由看起来很好的客人查看. 我的方法是添加一个变量$showSidebar.然后在contact.php中有$showSidebar = false.该变量的默认操作将由isGuest设置,并且页面可以覆盖它以关闭每页的侧边栏. 我真的不想要大量的ifGuest检查显示替代div或代码,所以我觉得这将是最好的方法. 如何扩展视图以添加我自己的变量?该文件在vendor / yiisoft / yii2 / web / view我认为.. 这是Yii2高级模板. PS:我愿意更好地解决我的问题.我不想要黑客,但最合适的Yii方式去做. 解决方法
由于View是Yii组件,您可以像yii配置文件中的其他组件一样进行设置.
只需添加如下内容: 'components' => [ 'view' => [ 'class' => 'appcomponentsextendedView', (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |