ошибка отправки уведомления: уведомление не отправляется - PullRequest
0 голосов
/ 10 июля 2020

Я создаю веб-сайт социальной сети, например twitter, и хочу, чтобы пользователи получали уведомления, когда за ними следят, упоминают или кому-то нравится их твит, а он не работает

ниже мой код

сообщение. php

<?php
    class Message extends User{
        function __construct($pdo){
            $this->pdo = $pdo;
        }
        public function notificationViewed($user_id){
            $stmt = $this->pdo->prepare("UPDATE `notification` SET `status` = '1' WHERE `notificationFor` = :user_id");
            $stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
            $stmt->execute();
        }
        public function notification($user_id){
            $stmt = $this->pdo->prepare("
                SELECT * FROM `notification` N  
                         LEFT JOIN `users` U  ON N.`notificationFrom` = U.`user_id` 
                         LEFT JOIN `tweets` T ON N.`target` = T.`tweetID` 
                         LEFT JOIN `likes`  L ON N.`target` = L.`likeOn` 
                         LEFT JOIN `follow` F ON N.`notificationFrom` = F.`sender` AND N.`notificationFor` = F.`receiver`
                         WHERE N.`notificationFor` = :user_id AND N.`notificationFrom` != :user_id");
            $stmt->execute(array("user_id" => $user_id));
            return $stmt->fetchAll(PDO::FETCH_OBJ);
        }
        public function sendNotification($get_id, $user_id, $target, $type){
            $this->create('notification', array('notificationFor' => $get_id, 'notificationFrom' => $user_id, 'target' => $target, 'type' => $type, 'time' => date('Y-m-d H:i:s')));

        }
    }
?>

ниже мой твит. php

<?php
   class Tweet extends User {
   function __construct($pdo){
    $this->pdo = $pdo;
   }
   public function addLike($user_id, $tweet_id, $get_id){
    $stmt = $this->pdo->prepare("UPDATE `tweets` SET `likesCount` = `likesCount` +1 WHERE `tweetID` = :tweet_id");
    $stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
    $stmt->execute();

    $this->create('likes', array('likeBy' => $user_id, 'likeOn' => $tweet_id));
    if($get_id != $user_id){
      Message::sendNotification($get_id, $user_id, $tweet_id, 'like');
    }
   }
   
   public function retweet($tweet_id, $user_id, $get_id, $comment){
    $stmt = $this->pdo->prepare("UPDATE `tweets` SET `retweetCount` = `retweetCount` +1 WHERE `tweetID` = :tweet_id");
    $stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
    $stmt->execute();

    $stmt = $this->pdo->prepare("INSERT INTO `tweets` (`status`,`tweetBy`,`tweetImage`,`retweetID`,`retweetBy`,`postedOn`,`likesCount`,`retweetCount`,`retweetMsg`) SELECT `status`,`tweetBy`,`tweetImage`,`tweetID`,:user_id,`postedOn`,`likesCount`,`retweetCount`,:retweetMsg FROM `tweets` WHERE `tweetID` = :tweet_id ");
    $stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
    $stmt->bindParam(":retweetMsg", $comment, PDO::PARAM_STR);
    $stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
    $stmt->execute();
    Message::sendNotification($get_id, $user_id, $tweet_id, 'retweet');
   }   
  }
 ?>

Кажется, я не понимаю, что не так с этим кодом, он не отправляет уведомление, и каждый раз, когда я нажимаю на значок уведомления после следующего, например, или упоминания пользователь, в уведомлении ничего не отображается. php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...