установить bootstrap4 для шаблона yii2 по умолчанию - PullRequest
1 голос
/ 16 января 2020

Попытался установить bootstrap4 для шаблона yii2 basi c, используя несколько руководств. Кажется, он не go как положено.

Что я сделал:

1) cmd: composer create-project --prefer-dist yiisoft/yii2-app-basic // install yii2

Результат: yii2 basi c шаблон работает с использованием bootstrap3

2.1) cmd: cd yii2-app-basic // go в папку yii2

2.2) cmd: composer require --prefer-dist yiisoft/yii2-bootstrap4 // установка bootstrap4 для yii2

2.3) Обновлены зависимости в \ assets \ AppAsset. php:

public $depends = [
    'yii\web\YiiAsset',
    'yii\bootstrap4\BootstrapAsset',
];

Результат: два bootstrap <link> в <head> (bootstrap3 + bootstrap4). Навбар выглядит плохо: Navbar looks bad

3) Обновлено \ views \ layouts \ main. php:

use yii\bootstrap4\Nav;
use yii\bootstrap4\NavBar;

Результат: версия navbar для маленького экрана без значка кнопки (на всех размерах экрана): small-screen version

4) cmd: composer remove yiisoft/yii2-bootstrap // удалить bootstrap3

Результат: " Класс 'yii \ bootstrap \ Widget' не найден "

5) Изменено" yii \ bootstrap \ "на" yii \ bootstrap4 \ "для всех *. php файлов в / yii2-app-basic /

Результат: так же, как (3)

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 16 января 2020

Большинство виджетов в представлениях по умолчанию проектов yii2 используют yii \ bootstrap \ BootstrapAsset (bootstrap 3). Не ожидайте волшебного переключения при вызове yii \ bootstrap4 \ BootstrapAsset.

Ваш шаг 2.3 просто добавляет bootstrap 4 ко всем другим библиотекам, которые вы вызываете с помощью виджетов.

Что вы можете do:

1) убедитесь, что вы вызываете yii \ bootstrap4 \ widgets и не вызываете yii \ bootstrap \ BootstrapAsset или какие-либо ресурсы, которые зависят от этого класса. Примеры:

  • use yii \ bootstrap4 \ Html;
  • use yii \ bootstrap4 \ Modal;
  • использовать yii \ bootstrap4 \ Tabs;
  • использовать yii \ bootstrap4 \ ActiveForm;

2) Помните, что bootstrap 4 имеет классы, отличные от bootstrap 3. Таким образом, если вы примените его к представлениям по умолчанию, он, скорее всего, сломается, потому что в нем нет классов из другой версии, или js действует по-другому.

0 голосов
/ 17 января 2020

Кажется, что проблема с navbar была из-за этого:

NavBar::begin([
    'brandLabel' => Yii::$app->name,
    'brandUrl' => Yii::$app->homeUrl,
    'options' => [
        'class' => 'navbar-inverse navbar-fixed-top', // THIS LINE
    ],
]);

Это заставило navbar отображаться как <nav id="w0" class="navbar-inverse navbar-fixed-top navbar">, в то время как bootstrap4 navbar требует navbar-expand и класс цветовой схемы, например. navbar-dark

Таким образом, мы можем:

1) удалить упомянутую 'class' строку >> navbar будет отображаться как <nav id="w0" class="navbar navbar-expand-lg navbar-light bg-light">

2) или обновить ее: 'class' => 'fixed-top navbar-expand-lg navbar-dark bg-dark',

То же самое касается классов кнопок и т. Д. c ... Просто нужно изменить его на вариант начальной загрузки 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...