Я пишу блог, чтобы получить опыт работы с 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
)?