laravelでSQLからデータを取得して、ランキングを作成したい。
解決したいこと
laravelでSQLからデータを取得して、ランキングを作成したい。
Laravelでダイエットアプリ(もどき)をつくっています。
現状、SQLにデータを保存し、foreachを使い配列として保存した内容をbladeで表示させています。
内容を表示する際に、ランキングとしてユーザーの順位づけをしたいのですが、どのようにして、順位を追加するのか方法が全くわかりません。
解決方法を教えて下さい。
rank.blade.php (viewファイルです。 {{ ? }}のところに順位を入れたい)
<!-- ランキング表示 -->
@foreach($sums as $sum)
<div class="card my-4">
<div class="row mx-0">
<h3 class="col border-bottom text-center border-dark"> {{ ? }} 位</h3>
<h3 class="col border-bottom text-center border-dark"> {{ $sum->name }} </h3>
<h6 class="col border-bottom text-center border-dark pt-2"> カロリー収支 {{ $sum->sum }} kcal </h6>
</div>
</div>
@endforeach
RankController.php(コントローラーです。)
public function index(){
$dt = Carbon::now()->toDateString();
//今日のランキングを(’sum’)の昇順で取得し表示。しかし出力したい順位は取れない。
$sums =\DB::table('users')
->join('records', 'records.user_id','=','users.id')
->where('date','=', $dt )
->orderBy('sum', 'ASC')
->get();
return view('rank', compact('sums') );
}
自分で試したこと
①controllerにfor($i=1 , $i =< 5, $i++){}を書いて、viewに渡す。{{ ? }}のところに6位の順位が出力され失敗。目的している、1位から順番に5位までの出力ができなかった。
これに関しては、foreach内の処理なので、うまくいかにことはわかっていました。
②https://qiita.com/uralogical/items/5d241920fa7c2f3f4d44
この記事の内容にトライしてみたものの内容がチンプンカンプンでした。
でも、やりたいことはこの記事のことのような気がします。
以上、初歩的な内容かもしれませんがご教示いただけますと幸いです。
0