Yii2: Как сделать визуальную часть с помощью классов Bootstrap?

Я пытаюсь использовать функцию renderPartial и классы Bootstrap.

Это моя функция в файле контроллера:

public function actionPrintReport() {
    Yii::$app->response->format = 'pdf';
    return $this->renderPartial('_myReport', []);
}

Это мой файл _myReport, который отображается: мои собственные стили работают, но не классы Bootstrap.

<div class="box box-warning">
    <div class="box-body">
        Text
    </div>
</div>

Но результат не показывает класс Bootstrap:

Предоставленный результат

Я также пробовал renderAjax, но тот же результат.

3 ответа

Я пытался сделать то же самое, что и вы, я получил решение.

Вам просто нужно было проверить структуру основного файла:

  1. В файле "_..." добавьте HTML
      <?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>" class="h-100">
<head>
    <meta charset="<?= Yii::$app->charset ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <?php $this->registerCsrfMetaTags() ?>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>

<body class="d-flex flex-column h-100">
<?php $this->beginBody() ?>

<div class="container-xl outlined-box p-2 m-1 ">
    <div class="row  ">
    test
    </div>
    <a href="#" class="btn btn-primary ">asdasd</a>
</div>

<h1>asdasdasd</h1>

<?php $this->endBody() ?>
</body>
</html>

<?php $this->endPage();


  1. Не забудьте поместить это в начало вашего файла PHP (кстати, после импорта)
          frontend\assets\AppAsset::register($this);

Вам нужно:

Asset::register($this);

по вашему мнению _myReports,

Ну, это очень важно с функцией renderPartial()

Отображает вид без применения макета.

Этот метод отличается от render() тем, что он не применяет никакого макета.

Функция renderPartial часто используется, когда вы визуализируете один и тот же блок кода несколько раз на одной странице. Каков был ваш ожидаемый результат здесь? Что ты пытаешься сделать?

registerAssets обычно загружается в основной файл вида (тот, который не отображается). Вы должны взглянуть на основной файл макета и понять, как загружаются ресурсы.

Другие вопросы по тегам