在我的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>
我的问题是:
正如您所看到的,导航栏看起来很糟糕。菜单列表似乎溢出了模态。
如何摆脱模态中的导航栏?我似乎无法找到我应编辑的creatbizadmin.php
部分。
有什么想法吗?
答案 0 :(得分:1)
我猜你有一个处理网址createbizadmin
的控制器。我也猜测在控制器操作中你正在渲染这样的视图文件;
$this->render("createbizadmin");
如果是这样,那就是你的问题。通过直接调用视图文件,Yii将默认布局应用于视图文件。
,您无法控制在被调用的视图文件中如何发生这种情况,并且还会呈现所有菜单等。要解决此问题,您可能需要渲染部分文件。这会在不应用布局的情况下呈现文件。所以使用;
$this->renderPartial("createbizadmin")
或者,如果由于ajax调用而生成模态内容,则可以从控制器响应;
$this->renderAjax("createbizadmin")
这篇文章似乎很好地解释了如何最好地实现这一目标; Render a form in a modal popup