หากคุณเคยใช้ flashMessage มาบ้างแล้ว หากยังไม่เคยใช้ ลองอ่านที่นี่ คุณอาจจะรูสึกว่ามันไม่ค่อยสวยเลย วันนี้ผมมี yii2-widget-growl
มาแนะนำ ซึ่งตัวนี้สวยงามและน่าใช้เลยทีเดียว
ก่อนอื่นไปติดตั้งกันก่อน yii2-widget-growl
composer require kartik-v/yii2-widget-growl "*"
กำหนดค่า
<?php
Yii::$app->getSession()->setFlash('alert1', [
'type' => 'success',
'duration' => 12000,
'icon' => 'fa fa-users',
'title' => Yii::t('app', Html::encode('Submission')),
'message' => Yii::t('app',Html::encode('บันทึกข้อมูลเสร็จเรียบร้อย')),
'positonY' => 'top',
'positonX' => 'right'
]);
Yii::$app->getSession()->setFlash('alert2', [
'type' => 'warning',
'duration' => 12000,
'icon' => 'fa fa-users',
'title' => Yii::t('app',Html::encode('Submission')),
'message' => Yii::t('app', Html::encode('นำเข้าข้อมูลเร็จเรียบร้อย..')),
'positonY' => 'top',
'positonX' => 'right'
]);
?>
การแสดงผล
<?php
use Yii;
use yii\helpers\Html;
//Get all flash messages and loop through them
<?php foreach (Yii::$app->session->getAllFlashes() as $message):; ?>
<?php
echo \kartik\widgets\Growl::widget([
'type' => (!empty($message['type'])) ? $message['type'] : 'danger',
'title' => (!empty($message['title'])) ? Html::encode($message['title']) : 'Title Not Set!',
'icon' => (!empty($message['icon'])) ? $message['icon'] : 'fa fa-info',
'body' => (!empty($message['message'])) ? Html::encode($message['message']) : 'Message Not Set!',
'showSeparator' => true,
'delay' => 1, //This delay is how long before the message shows
'pluginOptions' => [
'delay' => (!empty($message['duration'])) ? $message['duration'] : 3000, //This delay is how long the message shows for
'placement' => [
'from' => (!empty($message['positonY'])) ? $message['positonY'] : 'top',
'align' => (!empty($message['positonX'])) ? $message['positonX'] : 'right',
]
]
]);
?>
<?php endforeach; ?>