【发布时间】:2016-12-02 21:49:02
【问题描述】:
这是我的桌子 NewTheme_Comment:
id
parent_id
id_theme
user
text
upVotes
downVotes
这是我的控制器:
class Comments extends Controller {
public function GenerateComments($id){
$Comments = NewTheme_Comment::where('id_theme', $id)->paginate(5);
return view('comments', ['Comments'=>$Comments]);
}
Id是一般帖子的链接(每个帖子都有不同的cmets部分),所以在用户点击时,用户会被动态重定向到cmets的('cmets view')部分因此。
所以我有一个数组Comments,其中填充了NewTheme_Comment 表中的值,对我来说,问题在于如何使用这些值来创建一个Threaded Comments 部分。
在我看来是这样(问题是这使得评论部分就像每个 parent_id 都等于 0 一样,这不是我要寻找的:
@foreach ($Comments as $Comment) {{-- Comments threads --}}
<div class="media">
<div class="media-left">
</div>
<div class="media-body">
<p class="media-heading">{{ $Comment->text }}</p>
<p class="media-heading">{{ $Comment->user }} / {{ $Comment->created_at }} </p>
</div>
</div>
@endforeach {{-- Comments threads --}}
最终结果:
0
1
2
3
2
1
1
0
1
0
我的想法是让 cmets 像(带有 parent_id):
0
1
2
3
2
1
1
0
1
0
但是我找不到正确的方法来逻辑地做这件事,所以最终看起来像一个简单的线程评论部分,与 reddit 使用的相同(用于我的小 Web 应用程序)。
如果我的方法不好,我将非常感谢其他更好的方法来解决这个问题。
【问题讨论】:
-
您可以按 parent_id 对它们进行分组,然后它们的结构会正确,因此您可以嵌套输出。
-
如何按 parent_id 对它们进行分组,例如 (0,1,1,1,2,2,2,2 / 0,1,1,2,2,2) 第一个分支和第二个评论树之一(2 个单线程评论)?