Lumenのテーブル名を既存のものに合わせる
lumenやlaravelではモデル名が単数形で、DBのテーブル名はその複数形、が基本の仕様となっている。
なので、新規にテーブル名を作成する場合や、テーブル名が複数形であればとくに問題ないのだが、
既存のテーブル名を利用する際に単数形となってしまっている時には明示的に指定してやる必要がある。
指定はEloquent
を利用してやる。
Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。
lumenでの利用
lumenではデフォルトではEloquentの利用がオフになっている。
なので、bootstrap/app.php
内のコメントアウトを外して有効にしてやる。
$app->withEloquent();
モデルの作成
モデルは、app/
以下に作成する。
例えば、user、というテーブル名を利用したい場合は、app/User.php
を作成してやる。
その中で、protected $table
の箇所がテーブル名を指定している箇所となるので、ここで単数形のテーブル名を指定してやる。
1 2 3 4 5 6 7 8 9 10 11 |
|
利用
マイグレーションは作成しなくても動作した。
(項目をDBとコードで同期させる時にartisanから利用するよう。lumenでも利用できる)
以下の様な形で取得できた。
DB::table('user')->get();
参考
Eloquent ORMの基本的な使用法 | WinRoadのLaravel4初心者講座
Enable Eloquent ORM in Laravel Lumen micro-framework — Medium