Yii 2在Modal中排除NavBar

时间:2015-02-17 08:43:39

标签: php modal-dialog yii2

在我的index.php视图中,我有一个按钮,点击后会弹出一个模态:

<p>
    <?= Html::button(
        'Create New BizAdmin',
        ['value' => Url::to(['createbizadmin']),
        'class' => 'btn btn-success',
            'id' => 'modalButton'

        ]) ?>


    <?php
        Modal::begin(['id' => 'modal']);
            echo "<div id='modalContent'></div>";     
        Modal::end();
    ?>
</p>

我的模态文件为createbizadmin.php,其中包含以下代码:

<?php

use yii\helpers\Html;


/* @var $this yii\web\View */
/* @var $model app\models\User */

$this->title = 'Create New Bizadmin';
?>
<div class="user-create">
    <h1><?= Html::encode($this->title) ?></h1>

    <?= $this->render('_formbizadmin', [
        'model1' => $model1,
        'model2' => $model2,
    ]) ?>

</div>

我的问题是: enter image description here

正如您所看到的,导航栏看起来很糟糕。菜单列表似乎溢出了模态。

如何摆脱模态中的导航栏?我似乎无法找到我应编辑的creatbizadmin.php部分。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我猜你有一个处理网址createbizadmin的控制器。我也猜测在控制器操作中你正在渲染这样的视图文件;

$this->render("createbizadmin");

如果是这样,那就是你的问题。通过直接调用视图文件,Yii将默认布局应用于视图文件。

,您无法控制在被调用的视图文件中如何发生这种情况,并且还会呈现所有菜单等。

要解决此问题,您可能需要渲染部分文件。这会在不应用布局的情况下呈现文件。所以使用;

$this->renderPartial("createbizadmin")

或者,如果由于ajax调用而生成模态内容,则可以从控制器响应;

$this->renderAjax("createbizadmin")

这篇文章似乎很好地解释了如何最好地实现这一目标; Render a form in a modal popup