I am new to Yii2 and its controllers and models. I have installed a app and running but the notifications are not saving in DB. Like is users are commenting or following a article no notification showing because data not storing to DB.
Code Sample:
protected function createNotification($type, $data) {
switch($type) {
case 'a2a':
if($data->asked_to != $data->asked_by) {
$notification = new UserNotifications;
$notification->user_id = $data->asked_to;
$notification->type = UserNotifications::TYPE_A2A;
$notification->details = Yii::t(
'app',
$notification->msgs[$type], [
'username' => Html::a($data->askedBy->name, ['users/view', 'id' => $data->asked_by, 'slug' => $data->askedBy->slug]),
'question' => Html::a($data->question->title, ['questions/view', 'id' => $data->question_id, 'slug' => $data->question->slug])
]
);
$notification->date = date('Y-m-d H:i:s');
// TBD - check for failures
$notification->save();
}
break;
case 'upvote':
if($data->answer->user_id != $data->user_id) {
$notification = new UserNotifications;
$notification->user_id = $data->answer->user_id;
$notification->type = UserNotifications::TYPE_UPVOTE;
$notification->details = Yii::t(
'app',
$notification->msgs[$type], [
'username' => Html::a($data->user->name, ['users/view', 'id' => $data->user_id, 'slug' => $data->user->slug]),
'question' => Html::a($data->answer->question->title, ['questions/view', 'id' => $data->answer->question_id, 'slug' => $data->answer->question->slug])
]
);
$notification->date = date('Y-m-d H:i:s');
// TBD - check for failures
$notification->save();
}
break;
case 'follow':
if($data->follower_id != $data->user_id) {
$notification = new UserNotifications;
$notification->user_id = $data->user_id;
$notification->type = UserNotifications::TYPE_FOLLOW;
$notification->details = Yii::t(
'app',
$notification->msgs[$type], [
'username' => Html::a($data->follower->name, ['users/view', 'id' => $data->follower_id, 'slug' => $data->follower->slug])
]
);
$notification->date = date('Y-m-d H:i:s');
// TBD - check for failures
$notification->save();
}
break;
case 'acomment':
if($data->answer->user_id != $data->user_id) {
$notification = new UserNotifications;
$notification->user_id = $data->answer->user_id;
$notification->type = UserNotifications::TYPE_ANSWER_COMMENT;
$notification->details = Yii::t(
'app',
$notification->msgs[$type], [
'username' => Html::a($data->user->name, ['users/view', 'id' => $data->user_id, 'slug' => $data->user->slug]),
'question' => Html::a($data->answer->question->title, ['questions/view', 'id' => $data->answer->question_id, 'slug' => $data->answer->question->slug])
]
);
$notification->date = date('Y-m-d H:i:s');
// TBD - check for failures
$notification->save();
}
break;
case 'qcomment':
if($data->question->user_id != $data->user_id) {
$notification = new UserNotifications;
$notification->user_id = $data->question->user_id;
$notification->type = UserNotifications::TYPE_QUESTION_COMMENT;
$notification->details = Yii::t(
'app',
$notification->msgs[$type], [
'username' => Html::a($data->user->name, ['users/view', 'id' => $data->user_id, 'slug' => $data->user->slug]),
'question' => Html::a($data->question->title, ['questions/view', 'id' => $data->question_id, 'slug' => $data->question->slug])
]
);
$notification->date = date('Y-m-d H:i:s');
// TBD - check for failures
$notification->save();
}
break;
case 'message':
if($data->to_user != $data->from_user) {
$notification = new UserNotifications;
$notification->user_id = $data->to_user;
$notification->type = UserNotifications::TYPE_MESSAGE;
$notification->details = Yii::t(
'app',
$notification->msgs[$type], [
'username' => Html::a($data->fromUser->name, ['users/view', 'id' => $data->from_user, 'slug' => $data->fromUser->slug]),
'message' => Html::a(Yii::t('app', 'message'), ['messages/thread', 'id' => $data->parent_id == null ? $data->id : $data->parent_id])
]
);
$notification->date = date('Y-m-d H:i:s');
// TBD - check for failures
$notification->save();
}
break;
}
}
This is a code via which notifications are saving. But nothing happening.