Как сохранить логин автора комментария? - PullRequest
0 голосов
/ 09 января 2019

Я пишу блог, чтобы получить опыт работы с php.

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

Проблема заключается в следующем: Нужно ли мне добавить дополнительный столбец в таблицу comments, в которой я сохраняю $_SESSION['login'] (которая дает мне имя пользователя, вошедшего в систему)

OR

Нужно ли сохранять $_SESSION['login'] в функции, где я получаю все комментарии из базы данных?

Прямо сейчас я получаю только имя текущего вошедшего в систему пользователя, а не имя фактического автора, и когда никто не вошел в систему, я получаю ошибку undefined index 'login'.

Я знаю, что это потому, что $_SESSION['login'] не установлен (и если пользователь вошел в систему, это его имя пользователя), но я не знаю, как его решить.

Это функция в PostsController.php, которая отображает сайт поста со всеми комментариями:

public function show()
{
  $emptyComment = false;

  $id = $_GET['id'];                              
  if (isset($_POST['content'])) {
    $content = $_POST['content'];
    $this->commentsRepository->insertForPost($id, $content);
    $emptyComment = true;
  }

  $post = $this->postsRepository->find($id); aus DB
  $comments = $this->commentsRepository->allByPost($id);
  $author = $_SESSION['login'];

  $this->render("post/show", [
   'post' => $post, // übergibt die post-Variable als Parameter
   'comments' => $comments,  
   'emptyComment' => $emptyComment,
   'author' => $author
  ]);
} 

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

Действительно ли мне нужно создать новый столбец в базе данных, в котором я сохраняю имя пользователя текущего вошедшего в систему пользователя как автора (возможно, даже соединяю его 1: 1 с таблицей users)?

...