This is the Toastr extension for Yii 2. It encapsulates Toastr plugin in terms of Yii widgets, and makes ajax notification easy to implement.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist odaialali/yii2-toastr "*"
or add
"odaialali/yii2-toastr": "*"
to the require section of your composer.json
file.
Once the extension is installed, you can test that the extension works by simply use it in your code by :
<?= \odaialali\yii2toastr\Toastr::widget([
'toastType' => 'error',
'message' => 'This is an error.',
'customStyle' => false
]);?>
There are 2 main useful widgets
displays Yii flash messages in toastr notification style
<?php
$session = \Yii::$app->getSession();
$session->setFlash('error', "msg1");
$session->setFlash('danger', "msg2");
$session->setFlash('warning', "msg3");
$session->setFlash('info', "msg4");
$session->setFlash('success', "msg5");
?>
<?= \odaialali\yii2toastr\ToastrFlash::widget([
'options' => [
'positionClass' => 'toast-bottom-left'
]
]);?>
fetch notification from ajax url
<?= \odaialali\yii2toastr\ToastrAjaxFeed::widget([
'feedUrl' => yii\helpers\Url::toRoute('/user/profile/notification-feed'),
'interval' => 5000,
'options' => [
'positionClass' => 'toast-bottom-left'
]
]);?>
the ajax controller should return an array like this
public function actionNotificationFeed(){
$ret = [
[
'type' => 'error',
'message' => 'error message',
'title' => 'Hey!'
],
[
'type' => 'info',
'message' => 'another message',
'title' => 'Hello'
]
];
return \yii\helpers\Json::encode($ret);
}