我提出了一個視圖,顯示一篇文章以及對該文章的答覆。就這個問題而言,答覆是以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' –