Como mostrar mensajes emergentes

Introducción

En las aplicaciones web donde se requiere tener una constante comunicación con el usuarios es necesario decirles que sucede después de realizar algún paso dentro del flujo de las aplicaciones, por tal motivo es muy útil utilizar mensajes emergentes.

Implementación 

Para implementar esta funcionalidad es necesario agregar el código en el layout de las vistas del proyecto, que normalmente se encuentra dentro de la carpeta "/layouts/main.php" esto puede variar dependiendo del tema que tengas instalado si es que tienes un tema en especial.


  <?php
if (Yii::$app->session->hasFlash('success')) {
    ?>
    <div class="alert alert-success alert-dismissible mb-2" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">×</span>
        </button>
        <strong> <?= Yii::$app->session->getFlash('success') ?></strong>
    </div>
    <?php
}

if (Yii::$app->session->hasFlash('error')) {
    ?>
    <div class="alert alert-danger alert-dismissible mb-2" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">×</span>
        </button>
        <strong> <?= Yii::$app->session->getFlash('error') ?></strong>
    </div>
    <?php
}

if (Yii::$app->session->hasFlash('info')) {
    ?>
    <div class="alert alert-info alert-dismissible mb-2" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">×</span>
        </button>
        <strong> <?= Yii::$app->session->getFlash('info') ?></strong>
    </div>
    <?php
}

if (Yii::$app->session->hasFlash('warning')) {
    ?>
    <div class="alert alert-warning alert-dismissible mb-2" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">×</span>
        </button>
        <strong> <?= Yii::$app->session->getFlash('warning') ?></strong>
    </div>
    <?php
}
?>



Uso


En Yii2 la forma más simple de hacerlo es con el siguiente línea.


Yii::$app->session->setFlash('success', "Proceso exitoso");


Lo que muestra esta línea es un mensaje emergente, el cual se coloca usualmente dentro del controller.

La vista puede variar dependiendo de la versión de bootstrap que tengas instalado.




Pueden utilizarse los mismos tipos de mensajes que bootstrap.

'success'
'info'
'warning'
'danger'


Fuentes: 

https://www.yiiframework.com/wiki/21/how-to-work-with-flash-messages 
https://getbootstrap.com/docs/4.4/components/alerts/

Comentarios

Aprende Yii2


Lo más Visto

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Cómo evitar el reenvío de formulario

Como instalar Yii en Windows usando App Serv

hostinger

ventana bienvenida