Yii 2 在模态中排除 NavBar
Yii 2 Exclude NavBar in Modal
在我的 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
的哪一部分应该编辑。
有什么想法吗?
我猜你在某个地方有一个控制器正在处理 url createbizadmin
。我还猜测在该控制器操作中,您正在像这样渲染视图文件;
$this->render("createbizadmin");
如果是这样,那就是你的问题了。通过直接调用视图文件,Yii 会将默认布局应用到视图文件。您无法控制在调用的视图文件中发生这种情况的方式,并且您的所有菜单等都将被呈现。
要解决这个问题,您可能需要渲染部分文件。这会在不应用布局的情况下渲染文件。所以使用;
$this->renderPartial("createbizadmin")
或者,如果模态内容是由 ajax 调用生成的,您可以从控制器响应;
$this->renderAjax("createbizadmin")
这篇文章似乎很好地解释了如何最好地实现这一目标; Render a form in a modal popup
在我的 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
的哪一部分应该编辑。
有什么想法吗?
我猜你在某个地方有一个控制器正在处理 url createbizadmin
。我还猜测在该控制器操作中,您正在像这样渲染视图文件;
$this->render("createbizadmin");
如果是这样,那就是你的问题了。通过直接调用视图文件,Yii 会将默认布局应用到视图文件。您无法控制在调用的视图文件中发生这种情况的方式,并且您的所有菜单等都将被呈现。
要解决这个问题,您可能需要渲染部分文件。这会在不应用布局的情况下渲染文件。所以使用;
$this->renderPartial("createbizadmin")
或者,如果模态内容是由 ajax 调用生成的,您可以从控制器响应;
$this->renderAjax("createbizadmin")
这篇文章似乎很好地解释了如何最好地实现这一目标; Render a form in a modal popup