Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

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

1Answer

Comments

  1. @m1527092

    Questioner

    bladeファイルの{{ ? }} のところに {{ $loop->iteration }}を入れたところ、思い通りの出力ができました!!!
    今日1日悩んでいたのが嘘みたいに解決できました。
    ありがとうございます!!!!!!!!
    本当に感謝です^^ありがとうございました。

Your answer might help someone💌