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; } }