Habilitar botones de Ver, Modificar y Eliminar en el GridView de Yii2 con Bootstrap 4

 Les muestro dos variantes para habilitar los botones de ver, modificar, eliminar en el GridView de Yii2 que desaparecen al utilizar la plantilla de AdminLTE3:

1.- Añadir el AppAsset en el frontend/views/layout/main.php

    frontend\assets\AppAsset::register($this);

2.- Sustituir en el frontend/assets/AppAsset.php la línea

 'yii\bootstrap\BootstrapAsset';

por:

 'yii\bootstrap4\BootstrapAsset';

3.- Añadir en el css que está en frontend/web/css/site.css

    .glyphicon {

        font-family: "Font Awesome 5 Free";

    }

    .glyphicon-eye-open:before {

        content: "\f06e";

        color: var(--success);

    }

    .glyphicon-pencil:before {

        content: "\f044";

        color: var(--primary);

    }

    .glyphicon-trash:before {

        content: "\f2ed";

        color: var(--danger);

    }

*** Puede pasar que el navegador se demore en mostrarnos la modificación por lo que tiene guardado en cache, puedes abrir una pestaña de incógnito y verificar si ya te sale ***

2 da Variante:

Sustituir el código que aparece en las columnas del GridView:

    [  'class'   => 'yii\grid\ActionColumn' ]

por:

  [

                'class'          => 'yii\grid\ActionColumn',

                'template'       => '{view} {update} {delete}',

                'buttons'        => [

                    'update' => function ($url, $model) {

                        return Html::a('<i class="fas fa-edit"></i>', $url, [

                            'title' => Yii::t('app', 'Update')

                        ]);

                    },

                    'view'   => function ($url, $model) {

                        return Html::a('<i class="fas fa-eye"></i>', $url, [

                            'title' => Yii::t('app', 'View')

                        ]);

                    },

                    'delete' => function ($url, $model, $key) {

                        return Html::a('<span class="fas fa-trash"></span>', $url, [

                            'title'        => Yii::t('yii', 'Delete'),

                            'data-confirm' => Yii::t('yii',

                                'Are you sure you want to delete this item"?'),

                            'data-method'  => 'post',

                            'data-pjax'    => '0',

                        ]);

                    }

                ]

            ]

De esta manera estamos creando nuestro propio actionColumn, con los iconos que si se muestran en Bootstrap4


En ambas opciones recomiendo los pasos uno y dos pues es necesario para cargar futuros css y js de manera global en nuestro proyecto

Pueden ver el proceso completo en mi canal de YouTube: https://youtu.be/KymoxqcDqVU

Comentarios

Entradas populares de este blog

AdminLTE3 integración Yii2

RBAC Yii2 utilizando la extensión "yii2mod/yii2-rbac": "*"

Integración AdminLTE2 Yii2