Laravel5のEloquentORMで1対多のリレーション(その4)

前回は、新しいテーブルを作成して、そのモデルとGatherモデルにリレーションを設定するところまでを作業しました。本日は、実際に新しいモデル(DetailモデルとItemモデル)と、基本となるモデル(Gatherモデル)とのリレーションを利用しながら、コードを記述していきたいと思います。

Gathersコントローラの修正

GathersControllerを下記のように修正します。

app/Http/Controllers/GathersController.php

この投稿の続きを読む »

タグ

2015年5月29日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5のEloquentORMで1対多のリレーション(その3)

今日は、Gathersに詳細データを添付したいと思います。新たに、detailsテーブルと、itemsテーブルを作成します。detailsテーブルに詳細情報を登録するのですが、detailsの詳細情報の項目名は、itemsテーブルから参照することにします。

  1. detailsテーブル
    • カラム(id,gather_id,item_id,.content+タイムスタンプ)
  2. itemsテーブル
    • カラム(id,name,sort)

テーブルの作成

SetupControllerのgetCreateメソッドを下記のように修正します。

この投稿の続きを読む »

タグ

2015年5月28日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5のEloquentORMで1対多のリレーション(その2)

前回は、gathersテーブルのcategory_idに、categoriesテーブルのidを入力するところまでを作業しました。今日は、実際に1対多のリレーションを使って、データを表示してみたいと思います。

モデルにリレーションの設定

まず、最初にモデルに1対多のリレーション(belongsTo)を設定します。

この投稿の続きを読む »

タグ

2015年5月27日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5のEloquentORMで1対多のリレーション

さて、今日からLaravel5のEloquentORMでリレーションを構築する方法を調べてみましょう。コレクション管理アプリの初日にスキーマビルダーでcategoriesテーブルを作成したのですが、全く使用していませんでした。そのcategoriesテーブルとgathersテーブルとのリレーションを構築していきます。

categoryモデルの生成

コマンドプロンプトのartisanコマンドでcategoryモデルを生成します。

php artisan make:model Category

生成されたモデルを下記のように修正します。

app/Category.php

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model {
 
 //複数代入のホワイトリスト
 protected $fillable=['name','description'];

 //自動タイムスタンプの無効化
 public $timestamps=false;
 
 /* 
 * 1対多のリレーション
 * Categoryは多くのGatherを持っています
 */
 public function Gather(){
 return $this->hasMany('Gather');
 }
}

この投稿の続きを読む »

タグ

2015年5月26日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5で削除ページの作成

前回は、修正ページを作成しました。本日は、削除ページを作成したいと思います。削除ページといってもindexページ内のTwitterブートストラップのモーダルを利用して作成します。

indexビューファイルの修正

まず最初にindexビューファイルを下記のように修正します。

app/resources/views/gather/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="#" data-toggle="modal" data-target="#deleteModal{{$gather->id}}"><span class="glyphicon glyphicon-remove"></span>削除</a>
 </td>
 </tr>
 <div class="modal fade" id="deleteModal{{$gather->id}}">
 <div class="modal-dialog">
 <div class="modal-content">
 <div class="modal-header">
 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
 <h4 class="modal-title alert alert-danger">『{{$gather->name}}』の削除</h4>
 </div>
 <div class="modal-body">
 <p>本当に削除してもいいですか</p>
 </div>
 <div class="modal-footer">
 {!! Form::open(['url'=>'gathers/delete']) !!}
 {!! Form::hidden('id',$gather->id) !!}
 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
 <input type="submit" class="btn btn-danger" value="削除">
 {!! Form::close() !!}
 </div>
 </div><!-- /.modal-content -->
 </div><!-- /.modal-dialog -->
 </div><!-- /.modal -->
 @endforeach
 </table>
 {!! $gathers->setPath('gathers') !!}<br>
 <a href="{{ url('gathers/create') }}" type="button" class="btn btn-primary btn-lg">新規作成</a>
</div>
@endsection

この投稿の続きを読む »

タグ

2015年5月25日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5で修正ページの作成

前回は、データの一覧ページを作成しましたが、本日は、データの修正ページを作成したいと思います。

Updateアクションの作成

まず、GathersControllerのgetUpdateアクションメソッドを下記のように作成します。

app/Http/Controllers/GathersController.php

public function getUpdate($id)
 {
 $gather=Gather::find($id);
 return view("gathers.update")
 ->with('gather',$gather);
 }

この投稿の続きを読む »

タグ

2015年5月24日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5で一覧表の作成

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

indexアクションの作成

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

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

app/Http/Controllers/GathersController.php

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

この投稿の続きを読む »

タグ

2015年5月23日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5で新規データの作成(その2)

前回は、Createビューを作成し、バリデーションを作成するところまでをやりましたが、Laravel5からは、『フォームリクエスト』によるバリデーション機能が追加されました。今日はそのフォームリクエストバリデーションについて調べてみたいと思います。

フォームリクエストバリデーション

ファームリクエストは、バリデーションロジックを含んだカスタムロジックリクエストクラスです。フォームリクエストは、artisanコマンドで簡単に生成することができます。

この投稿の続きを読む »

タグ

2015年5月21日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5で新規データの作成

前回は、ブラウザからデータベーステーブルを作成しました。今回は、その作成したデータベーステーブルに新規データを登録したいと思います。

ビューの作成

まず、新規データ作成するためのビューファイルを作成します。

この投稿の続きを読む »

タグ

2015年5月20日 | コメント/トラックバック(0) |

カテゴリー:Laravel

スキーマビルダーでテーブルの生成

Laravel5で私のコレクション管理用のアプリケーションを下記のような仕様で作成したいと思います。

  1. テーブルは、gathersとcategories
  2. アクセスできるのは、メンバーのみ

まず最初に、Laravel5のスキーマビルダーでデータベーステーブルを作成したいと思います。migrationで管理するのが基本だと思いますが、ブラウザでデータベーステーブルを作成する仕様でアプリケーションを設計します。

この投稿の続きを読む »

タグ

2015年5月17日 | コメント/トラックバック(0) |

カテゴリー:Laravel

このページの先頭へ