--- title: Laravel5でDB操作の基本(Eloquent ORM編) tags: laravel5 author: zaburo slide: false --- フォームから値を受けっとってDBの保存、表示までの簡単なサンプル。 Laravelでデータを扱う方法はQueryBuilder(DB::*)を使う方法と、Eloquent ORMを使う方法があるが、今回はEloquent ORMを利用してみる。 なお、ここでは、すでにmembersテーブルが存在することを前提に進める。 ####モデルの作成 Eloquent ORMを利用するためには、モデルを定義する必要がある。Laravel5からは、Modelディレクトリが無くなったので、とりあえず、App直下に作成する(Namespaceを変えればどこでも)。 ``` @yield('title') @yield('body') ``` ポイントは、普通のフォームでもname='_token'でcsrf_token()を送るところ。 ```resources/views/input.blade.php @extends('master') @section('title') input @stop @section('body')
@stop ``` ####受取と保存(そして一覧表示) 受取については、Laravel5からはFormRequestを使うのが良いのだろうけど、とりあえずInputで受け取る。Inputを利用するには、use Input;とする必要がある。また、定義したModelを利用するために、use App/Members;を指定している。 ここでは、/inputでFormを表示、/resで値を受け取ってDBに保存する(select()で一覧表示)。 保存はDB::insertに比べ、オブジェクト指向っぽく直感的に書くことができる。 ```app/Http/Controllers/HogeController.php name = $name; $member->email = $email; //保存 $member->save(); return "Saved via Eloquent"; } //一覧表示 public function select(){ $members = Member::all(); return view('select')->with('members',$members); } } ``` ####表示 表示は、QueryBuilderもEloquent ORMも変わらない。 ``` @extends('master') @section('title') select @stop @section('body')

list

@foreach($members as $member) {{$member->name." ".$member->email}}
@endforeach @stop ``` ####Route 一応Routeも。 ```app/Http/route.php Route::get('input','HogeController@input'); Route::post('res','HogeController@res'); Route::get('select','HogeController@select'); ``` ####まとめ 後は、Laravel.comのDocumentsを見て、Eloquentの書き方を随時調べて利用すれば良い。