Laravelエキスパート養成読本メモ(DB操作)
データベース操作
Laravel5で提供されているDB操作方法は以下
- Eloquent
- 単純なデータの取り扱いやデータ量が少ないのであればこれ
- 情報量が膨大になってきたり複雑になってきた場合は向いてない
- クエリビルダー
- EloquentとDBファサードの間みたいなイメージ
- SQLインジェクション対策されてるから生クエリ書くよりいいと思う
- DBファサード
- 複雑なデータの扱いが複雑なところは直接クエリを書いたほうがいいと思う
- SQLインジェクションに注意してクエリを書く必要がある
実行したクエリを確認する
- DB::listenメソッド
- クエリを実行するとilluminate.queryをリッスンしてログに出力してくれる
- DBイベントの実行例
<?php
DB::listen(function($sql, $bindings, $time)
{
// $sqlがSQL文,$bindingsがパラメータ,$timeが実行時間
$query = str_replace('?', '%s', $sql);
$query = vsprintf($query,$bindings);
Log::info($query);
});
<?php
DB::enableQueryLog();
$sql = DB::pretend(function()
{
DB::select('select * from users where id = ?', [1]);
});
//sqlを表示
dd($sql);
Eloquentでモデルの作成
- コマンド
- php artisan make:moel モデル名
- 最初の一文字目は大文字
Eloquentを使ったDB操作(各種)
- 公式ドキュメントが充実しているのでこっちをみて自分の用途に合わせて
Eloquent ORM 5.0.dev Laravel
感想
- 知りたいこととか気になることとかすごい親切に書いてくれてわかりやすかった・・・
- 個人的に実行したクエリを確認できるのはすごい便利だなぁと。使い方を学ばなければ・・・
- このLaravelエキスパート養成読本すごいいい本なんでおすすめです!!
参考元
Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)