我正在编写博客,以获取有关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
]);
}
我真的不知道如何保存作者的用户名并正确显示。
我是否真的需要在数据库中创建一个新列,以便将当前登录用户的用户名保存为作者(甚至可以将其与users
表进行1:1连接)? ?