2015-02-17 1 views
1

В моей index.php зрения, у меня есть кнопка, один раз щелкнул, модальный выскочит:Yii 2 Исключить NavBar в Modal

<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

Как вы можете видеть, Navbar выглядит ужасно. Список меню, похоже, переполняется вне модального.

Как я могу избавиться от navbar внутри моего модального? Кажется, я не могу найти, какую часть creatbizadmin.php изменить.

Любые мысли?

ответ

1

Я предполагаю, что у вас есть контроллер где-то, который обрабатывает URL-адрес createbizadmin. Я также предполагаю, что внутри этого действия контроллера вы визуализируете файл вида следующим образом;

$this->render("createbizadmin"); 

Если это так, то это ваша проблема. Вызовыя файл вида напрямую, Yii будет применять макеты по умолчанию к файлу представления. Вы не можете контролировать, как это происходит из вызываемого файла вида, и все ваши меню и т. Д. Будут отображаться.

Чтобы обойти это, вам, вероятно, придется отобразить частичный файл. Это rendres файл без применения макетов. Поэтому используйте;

$this->renderPartial("createbizadmin") 

В качестве альтернативы, если модальное содержание генерируется в результате вызова Ajax, вы можете ответить от контроллера с;

$this->renderAjax("createbizadmin") 

Эта статья, по-видимому, имеет хорошее объяснение того, как добиться этого; Render a form in a modal popup