チュートリアル 初級

DBの操作について(一覧表示&ページネーション)

2018/01/09

チュートリアル初級「フォームからDBに挿入」のラストです。

今回は従業員テーブル「workers」の一覧表をします。

まずは Eloqunet による全データ取得のやり方について学習します。

 

構文

一覧表示の基本は以下のような構文になります。

例)Userモデルで全データを取得

$users = App\User::all();

ビューでのカラム値に対するアクセスは以下のように書きます。

<div class="container">
  @foreach ($users as $user)
  {{ $user->username }} / {{ $user->mail }} / {{ $user->age }}
  @endforeach
</div>

Eloquentではallメソッド以外にもいくつかのメソッドが用意されています。

例)最新データを上にしてソート(降順)

$users = \App\User::orderBy('created_at', 'desc')->get();

SQLでいう order by にあたるメソッドですね。

【解説】
order byメソッドを使う場合はgetメソッドも必要になります。
チェーンで繋ぎます。

 

ページネーション

ページネーションはEloqunetにpaginateメソッドを使うだけです。

 

構文

例)10レコードずつ表示

$users = \App\User::orderBy('created_at', 'desc')->paginate(10);
【解説】
getメソッドの代わりにpaginateメソッドを使います。

ページネーションの表示は以下のように記述します。

<div class="container">
  @foreach ($users as $user)
  {{ $user->name }} / {{ $user->mail }} / {{ $user->age }}
  @endforeach
</div>

{{ $users->links() }}

 

チュートリアル

チュートリアル初級「フォームからDBに挿入」の流れです。

 

目標

入力画面にテーブル一覧を表示させます。

 

流れ

1)コントローラ修正
2)ビュー修正

 

1)コントローラ修正

:
   public function getIndex()
  {
  $workers = \App\Worker::orderBy('created_at', 'desc')->paginate(5);
  return view('insert.index')->with('workers',$workers);
  }
:

 

2)ビュー修正

一覧表示の箇所を下記のように追記します。

:
 <table class="table table-striped">
  <thead>
  <tr><th scope="col">名前</th><th scope="col">メールアドレス</th><th scope="col">年齢</th></tr>
  </thead>
  <tbody>
  @foreach ($workers as $worker)
  <tr>
  <td>{{ $worker->username }}</td><td>{{ $worker->mail }}</td><td>{{ $worker->age }}</td>
  </tr>
  @endforeach
  </tbody>
 </table>
<div class="text-center">
{{ $workers->links() }}
</div>
:

 

3)動作確認

入力画面

 
確認画面

 
完了画面

 
入力画面

チュートリアル初級「フォームからDBに挿入」は以上になります。

 

-チュートリアル, 初級