Laravel5で一覧表の作成

前回は、Ceateフォームからデータベーステーブルに新規データを登録するところまでを実践してみました。今日は、その登録したデータを一覧表に表示してみたいと思います。

indexアクションの作成

それでは、Gathersコントローラのindexアクションにデータベーステーブルからデータを取得してビューファイルにデータを渡します。

indexアクションを下記のように記述します。

app/Http/Controllers/GathersController.php

public function getIndex()
 {
 $gathers=Gather::paginate();
 return view('gathers.index')
 ->with('gathers',$gathers);
 }

ビューファイルを下記のように作成します。

app/resources/views/gathers/index.blade.php

@extends('app')
 @section('content')
 <div class="container">
 <h2>コレクション一覧</h2>
 <table class="table table-striped">
 <tr>
 <th>名前</th>
 <th>Code</th>
 <th>説明</th>
 <th>処理</th>
 </tr>
 @foreach($gathers as $gather)
 <tr>
 <td>{{ $gather->name }}</td>
 <td>{{ $gather->code }}</td>
 <td>{{ $gather->description }}</td>
 <td>
  <a href="{{url('gathers/update',$gather->id)}}"><span class="glyphicon glyphicon-pencil"></span>修正</a>&nbsp;
 <a href="{{url('gathers/delete',$gather->id)}}"><span class="glyphicon glyphicon-remove"></span>削除</a>
 </td>
 </tr>
 @endforeach
 </table>
 {!! $gathers->render() !!}
 <a href="{{ url('gathers/create') }}" type="button" class="btn btn-primary btn-lg">新規作成</a>
 </div>
 @endsection

18行目:urlヘルパー関数は、第1引数にURI、第2引数にパラメータを記述します。URLは『localhost/laravel/public/gathers/update/1』のようになります。

24行目:ページネーション用のページリンクです。Laravel4では、links()メソッドでした。又、{{…}}では、タグがエスケープされて、正しく動作しませんので、{!!…!!}}で記述してください。

ブラウザで表示してみました。※表示の都合上ページネーションの表示行数を3行にセットしていますので、悪しからずご了承ください。

2015-05-23 15-37-19

ページネーションのエラー

只、今回、ページネーション用のリンクの2をクリックしてみると、Laravel5のバグなのか私の設定ミスなのか不明ですが、下記のように正しいURLが表示されませんでした。

2015-05-23 15-40-17

そこで、上記の24行目を下記のように修正してみると、

{!! $gathers->setPath('gathers') !!}

2ページ目を表示することができるようになりました。

2015-05-23 15-50-14

又、下記のように入力した場合、2ページ目には移動できるのですが、元のページに戻るときに正しいURLが表示されずにエラーになります。

{!! $gathers->setPath('gathers/index') !!}

この場合、下記のように記述することでエラーを解消することができます。

{!! $gathers->setPath(url('gathers/index')) !!}

本日は、以上です。次回は、修正ページの作成を行います。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ