laravelのEloquentやORMについて
目次
Eloquentの基本
ORMとは、DBのレコードをプログラミング言語のオブジェクトとして扱えるようにする仕組みです。Laravelには「Eloquent」が搭載されています。
今回はそのLaravelのEloquentについて解説致します。
ORMとは
ORMとは、「Object-Relational Mapping」の頭文字をとったものです。オブジェクトをRDBに保存できるように対応付けを簡単にするためORMを使います。
ORMにより、データベースから取り出されたレコードはPHPのオブジェクトの形に変換して渡されるようになります。
Eloquentとモデル
Laravelには「Eloquent」というORMが用意されています。「モデル」と呼ばれるクラスを定義し、これを利用してDB操作を行えるように設計されています。
モデルはテーブルの内容を定義したクラスです。そのテーブル内にあるフィールドをプロパティとして持たせており、テーブルとフィールドをモデルクラスとインスタンスを扱う感覚で操作できます。
Elowuentを実際に使用してみる
モデルを作成する
では、実際にEloquentを利用してみましょう。では、「animal」テーブルのモデル「dog」を作成してみましょう。
モデルの作成はコマンドを使って行います。コマンドプロンプト又はターミナルでプロジェクトフォルダに移動して、下記コマンドを実行してください。
1 |
php artisan make:model dog |
dogControllerを作成する
では、dogモデルを利用するコントローラを作成します。コマンドプロンプト又はターミナルで下記実行してください。
1 |
php artisan make:controller DofController |
index.blade.phpを作成する
次はindexアクション用テンプレートを作成します。「views」内にdogという名前でフォルダを作成してください。その中に「index.blade.php」を作成してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@section('menubar') @parent インデックスページ @endsection @section('content') <table> <tr><th>NickName</th><th>Kind</th><th>Age</th> foreach ($values as $value) <tr> <td>{{$valeu->NickName}}</td> <td>{{$valeu->Kind}}</td> <td>{{$valeu->Age}}</td> </tr> endforeach </tr> </table> @endsection |
ルート情報を追加する
最後にルート情報を記述しましょう。web.phpを開き、下記を追記しましょう。
1 |
Route::get('dog','DogController@index'); |