@Monitorkin

Как в gridview yii2 вывести вместо иконок glyphicon fontawesome?

Как в gridview yii2 вывести вместо иконок glyphicon которые выводятся по умолчанию
вывести fontawesome?
Потому что хочу fontawesome! :)
  • Вопрос задан
  • 75 просмотров
Решения вопроса 2
xEpozZ
@xEpozZ
Веб-разработчик
Переопределить ActionColumn и заменить
glyphicon на fa
https://github.com/yiisoft/yii2/blob/master/framew...
Ответ написан
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Можно конечно же переопределить, как советует Дмитрий Дерепко.
А можно сделать следующим образом.
Необходимо настроить вывод кнопок.
Вот как-то так.
[
'class' => 'yii\grid\ActionColumn',
  'buttons' => [
     'update' => function($name, $model, $key){
        return Html::a('<i class="fa fa-plus fa-lg" aria-hidden="true"></i>', ['update']);
      }
   ]
]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maksim92
@maksim92
Yii Framework
Вариантов тут несколько:

1. Создать свой класс ActionColumn и наследовать его от базового ActionColumn. В этом классе переопределить нужную реализацию. Как советует Дмитрий Дерепко

2. Замена в одном месте. Если требуется заменить только в одном месте имеет смысл использовать решение Дмитрий

3. Сочетать всё это используя DI контейнер. Всегда рекомендую использовать такую глобальную подмену данных. Это более гибко. Для этого создаем Bootstrap класс с реализацией интерфейса \yii\base\BootstrapInterface. Подключаем его в автозагрузку приложения (bootstrap в config.php) и заменяем всё что нам нужно:
$actionColumnSetting = [
            'buttons' => [
                'view' => function($name, $model, $key){
                    return Html::a('<i class="fas fa-eye" aria-hidden="true"></i>', ['update']);
                },
                'update' => function($name, $model, $key){
                    return Html::a('<i class="fas fa-pencil-alt" aria-hidden="true"></i>', ['update']);
                },
                'delete' => function($name, $model, $key){
                    return Html::a('<i class="fas fa-trash" aria-hidden="true"></i>', ['delete']);
                }
            ],
        ];
        \Yii::$container->set(ActionColumn::class, $actionColumnSetting);


Это удобно во всех случаях. Например, вы вдруг захотите во всех gridview использовать другие экшены редактирования. Заменить это будет просто. Необходимо update переименовать в edit. Либо вам во всех gridview нужна дополнительная кнопка "перенести Архив"

$actionColumnSetting = [
            'buttons' => [
                'view' => function($name, $model, $key){
                    return Html::a('<i class="fas fa-eye" aria-hidden="true"></i>', ['edit']);
                },
                'update' => function($name, $model, $key){
                    return Html::a('<i class="fas fa-pencil-alt" aria-hidden="true"></i>', ['update']);
                },
                'delete' => function($name, $model, $key){
                    return Html::a('<i class="fas fa-trash" aria-hidden="true"></i>', ['delete']);
                },
  'archive' => function($name, $model, $key){
                    return Html::a('<i class="fas fa-trash" aria-hidden="true"></i>', ['archive']);
                }
            ],
        ];
        \Yii::$container->set(ActionColumn::class, $actionColumnSetting);

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bezlimit Москва
от 100 000 до 130 000 руб.
Sky Way Capital Москва
от 100 000 до 150 000 руб.