データベースクエリの結果を操作する場合、通常のクエリで完全なデータセットコンテンツを取得するのではなく、結果セットの行の総数のみを取得すると便利なことがよくあります。 Eloquentは、Eloquentオブジェクトの代わりにスカラー数を返すいくつかの異なる集約メソッドを提供します。 count(), max()、 と sum()、とりわけ。 これらはすべて、すべてのEloquentモデルに組み込まれている固有のクエリビルダーを介して利用可能になります。

シリーズのこのパートでは、メインアプリケーションビューを更新して、各リスト内のリンクの総数を表示します。

ファイルを開く resources/views/index.php コードエディタで:

resources/views/index.php

でスタイル設定された段落を見つけます subtitle クラスには、 foreach アプリケーションメニューをレンダリングするループ:

...
<p class="subtitle">
     @foreach ($lists as $list)<a href="{{ route('link-list', $list->slug) }}" title="{{ $list->title }}" class="tag is-info is-light">{{ $list->title }}</a> @endforeach
</p>
...

各リスト内のリンクの総数を取得するには、内からクエリビルダーにアクセスできます。 $list->links() で定義された関係メソッド LinkList クラスを呼び出し、 count() クエリビルダーから利用できるメソッド:

{{ $list->links()->count() }}

内部のコードを更新します foreach ループして count() メソッド呼び出し。リスト内のリンクの数を表示します。 必ず中に入れてください <a> タグとリストタイトルの直後。 レンダリングされたHTML出力を読みやすくするために、この情報を括弧で囲むことができます。

終了すると、コードは次のようになります。

 <p class="subtitle">
      @foreach ($lists as $list)<a href="{{ route('link-list', $list->slug) }}" title="{{ $list->title }}" class="tag is-info is-light">{{ $list->title }} ({{ $list->links()->count() }})</a> @endforeach
 </p>

終了したらファイルを保存します。 次に、ブラウザにメインアプリケーションページをリロードします。

http://localhost:8000

トップメニューに、各リストに含まれるリンクの総数を示す次のようなページが表示されます。

このシリーズの次のパートでは、クエリの結果の数を制限する方法と、LaravelEloquentで結果をページ分割する方法を学習します。