【发布时间】:2018-12-03 02:21:38
【问题描述】:
好的,所以基础是我希望能够在我的每个帖子上都有 cmets。 cmets 将为每个人提供一个回复按钮。它不是多线程的,所以一条评论会有很多回复。那些回复不会有回复。我也希望能够喜欢和不喜欢评论/回复。所有这些都不会绑定到用户模型或任何此类。公众访问者将能够添加 cmets 并回复 cmets,但需要获得批准。
这就是我目前得到的逻辑。我在正确的轨道上吗(希望这篇文章也可以帮助其他人):
所以我创建了一个Comment 模型。然后创建一个名为comments 的表。
我创建了一个名为 Reply 的模型和一个名为 replies 的表
最后是模型名称Like 和表格likes
所以关系是:
comments 将有许多 replies 和 replies 属于一个 comment
replies & comments 会有很多 likes。
现在是逻辑:
我将使用 AJAX 调用 CommentController 上的 store 函数来存储 cmets。我将调用ReplyController 上的 store 函数来存储回复。至于点赞,LikeController store 功能会存储点赞,以供评论和回复。
这是表结构:
-
评论表
- 身份证
- post_id
- 姓名
- 电子邮件
- 评论
- 已批准
- 时间戳
-
回复表
- 身份证
- comment_id
- 姓名
- 电子邮件
- 评论(或回复)
- 已批准
- 时间戳
-
赞表
- 身份证
- comment_id
- reply_id
- 喜欢
- 不喜欢
- 时间戳
现在我不明白的是,喜欢桌子。拥有comment_id 和reply_id 以及like 和dislike 是否正确?
每当有人点击喜欢或不喜欢时,我都可以调用 store 函数,并将其存储在表中,如果它是回复或评论,则将其更新为 id 到相应的 id 列。逻辑对吗?
另外,如果你们有任何建议或更好、更有效的方法,请告诉我。 这太长了,所以我就把它留在这里。
编辑
还忘了提到我不知道我将如何将喜欢的数量从 db 带到刀片并计算它。不是上面提到的当前结构。另外,如何检查该人是否已经喜欢。如果是这样,不要让他们再次喜欢或不喜欢。喜欢的人不能不喜欢。他们只能做一件事。
【问题讨论】:
-
@RossWilson 例如什么?
-
客人喜欢/不喜欢的网站之一的示例?
-
好吧,我错了。我将编辑我的问题。其余的呢?如果我要使用用户模型来喜欢?喜欢或不喜欢后是否需要js禁用按钮?
-
可能会有客人“喜欢”的外观,但是,这意味着信息存储在用户浏览器中,因此他们需要做的就是添加更多投票是使用不同的浏览器,使用私人标签,或者只是清除他们的存储/cookie。
-
是的。这与我的想法完全相同。我们可以使用缓存或 cookie 来点赞评论,但如果用户使用多个浏览器或隐身模式,那将毫无用处。我的表结构对吗?如果用户在登录后需要点赞帖子,我需要做什么?
标签: laravel laravel-5 comments laravel-5.6