我提出了一个视图,显示一篇文章以及对该文章的答复。就这个问题而言,答复是以foreach循环和随机顺序进行的。有没有办法订购foreach循环,以便最早的回复位于顶部?并在底部最古老的答复?Laravel 5.2按日期排序的Foreach订单
这个循环
@foreach($topic->replies as $reply)
<div class="collection">
<div class="collection-item row">
<div class="col s3">
<div href="" class="avatar collection-link">
<div class="row">
<div class="col s3"><img src="/uploads/avatars/{{ $reply->user->avatar }}" alt="" class="circle" style="width: 50px;"></div>
<div class="col s9">
<p class="user-name">{{ $reply->user->username }}</p>
</div>
</div>
<p>Role: {{ $reply->user->role->role_name }}</p>
<p>Since: {{ $reply->user->created_at }}</p>
<p class="post-timestamp">Posted on: {{ $reply->created_at }}</p>
</div>
</div>
<div class="col s9">
<div class="row last-row">
<div class="col s12">
<p>{!! $reply->reply_text !!}</p>
</div>
</div>
<div class="row last-row block-timestamp">
<div class="col s6">
<p class="post-timestamp">Last changed: {{ $reply->updated_at }}</p>
</div>
</div>
</div>
</div>
</div>
@endforeach
TopicsController.php(显示方式)
public function show($theme_id, $topic_id)
{
$theme = Theme::with('topics')->findOrFail($theme_id);
$topic = Topic::with('theme')->findOrFail($topic_id);
return view('topics.topic')->withTopic($topic)->withTheme($theme);
}
提前感谢!
不,你不能“订购一个foreach循环”,如果有什么你必须订购你想在循环之前循环的数据数组。但是,这应该发生在数据库级别上 - 以一种方式编写查询,以便返回按您希望它们开始的排序结果。 – CBroe
使用主题查询中的'latest()'方法来订购回复。 –
不,你不能“订购foreach循环”,而是在获取数据时使用'orderBy' –