Exemplo n.º 1
0
 public function action_delete()
 {
     try {
         if (empty($_REQUEST['post_id']) || !is_numeric($_REQUEST['post_id'])) {
             throw new Exception('Неверные параметры.');
         }
         if (!$this->_uid) {
             throw new Exception('Удалять могут только авторизованые пользователи.');
         }
         $post = posts::find_by_id($_REQUEST['post_id']);
         if (!$post) {
             throw new Exception('Сообщение не найдено.');
         }
         if ($post->uid !== $this->_uid) {
             throw new Exception('Можно удалять только свои сообщения.');
         }
         $post->delete();
         //удаляем также все связанные записи в других таблицах
         posts_attachments::connection()->query('DELETE FROM posts_attachments WHERE post_id=' . $_REQUEST['post_id']);
         posts_like_members::connection()->query('DELETE FROM posts_like_members WHERE post_id=' . $_REQUEST['post_id']);
     } catch (Exception $e) {
         $this->_actions_data['_errors'][] = $e->getMessage();
         $this->_actions_data['_ok'] = 0;
     }
 }