投稿とその投稿への返信を表示するビューを作成しました。この質問の時点では、応答は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」を使用してください。 –