魔法使いの卵

WEBエンジニアの卵の成長記録

Laravelエキスパート養成読本メモ(DB操作)

データベース操作

Laravel5で提供されているDB操作方法は以下

  • Eloquent
    • 単純なデータの取り扱いやデータ量が少ないのであればこれ
    • 情報量が膨大になってきたり複雑になってきた場合は向いてない
  • クエリビルダー
  • 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);  
});
  • DB::pretendメソッド(こっちがおすすめらしい)
    • 発行されたsqlの確認
<?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操作(各種)

感想

  • 知りたいこととか気になることとかすごい親切に書いてくれてわかりやすかった・・・
  • 個人的に実行したクエリを確認できるのはすごい便利だなぁと。使い方を学ばなければ・・・
  • このLaravelエキスパート養成読本すごいいい本なんでおすすめです!!

参考元
Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)