【Laravel 5.8】WordPress の DB を使ってお勉強。ユニットテストを書き始めた時のノート

スポンサードリンク


まとめ

“【Laravel 5.8】WordPress の DB を使ってお勉強。ユニットテストを書き始めた時のノート” の続きを読む

Laravel 5.8。インメモリの SQLite で PHPUnit テストを行う設定

設定まとめ

  • config/database.php の 'driver' => 'sqlite' の database の値として :memory: を指定する。
  • phpunit.xml の env に name="DB_CONNECTION" value="sqlite" を追加する。
“Laravel 5.8。インメモリの SQLite で PHPUnit テストを行う設定” の続きを読む

Laravel 5.8 。 migrate が MySQL の場合は問題ないのに SQLite では失敗する現象の原因と修正

対処方法まとめ

  • マイグレーションファイルにて、メソッドチェーンで絡むの後にインデックスをつなげる場合は、インデックスのメソッドの引数を指定しない。
  • 例えば、 $table->string('meta_key')->nullable()->index('meta_key'); ではなくて、 $table->string('meta_key')->nullable()->index(); とする。
“Laravel 5.8 。 migrate が MySQL の場合は問題ないのに SQLite では失敗する現象の原因と修正” の続きを読む

Laravel 5.7 を 5.8 へアップグレードした手順メモ

“Laravel 5.7 を 5.8 へアップグレードした手順メモ” の続きを読む

Laravel 5.6 を 5.7 へアップグレードした手順メモ

“Laravel 5.6 を 5.7 へアップグレードした手順メモ” の続きを読む

Laravel 5.5 を 5.6 へアップグレードした手順メモ

“Laravel 5.5 を 5.6 へアップグレードした手順メモ” の続きを読む

【Laravel 5.5】WordPress の DB を使ってお勉強。モデルの日時プロパティを楽に扱えるようにする方法

学んだこと

“【Laravel 5.5】WordPress の DB を使ってお勉強。モデルの日時プロパティを楽に扱えるようにする方法” の続きを読む

【Laravel 5.5】WordPress の DB を使ってお勉強。投稿に紐づくカテゴリーを取得して表示する

学んだこと

“【Laravel 5.5】WordPress の DB を使ってお勉強。投稿に紐づくカテゴリーを取得して表示する” の続きを読む

Laravel 5.8 で多対多構造を belongsToMany の引数をほぼ使い尽くしてなんとしてでもリレーションを実現する方法

Laravel 5.8 における belongsToMany の引数まとめ

  • 第 1 引数では最終的な接続先モデル名を名前空間含めて指定する
  • 第 2 引数では中間テーブル名を指定する
  • 第 3 引数では接続元モデル ID を示す中間テーブル内のカラム名を指定する
  • 第 4 引数では最終的な接続先モデル ID を示す中間テーブル内のカラム名を指定する
  • 第 5 引数では接続元モデル ID のカラム名を指定する
  • 第 4 引数では最終的な接続先モデル ID のカラム名を指定する
“Laravel 5.8 で多対多構造を belongsToMany の引数をほぼ使い尽くしてなんとしてでもリレーションを実現する方法” の続きを読む

【Laravel 5.5】WordPress の DB を使ってお勉強。投稿に紐づく投稿者情報をパッと取得する

学んだこと

  • aaa テーブルに xxx_id カラムがある場合、 xxx を取得するには belongsTo() を使う。 aaa モデルクラスで次のように使う。なお、 xxx テーブルのプライマーキーは id とする。
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class Aaa extends Model
{
    public function xxx(): BelongsTo
    {
        return $this->belongsTo('App¥Xxx', 'xxx_id', 'id');
    }
}
  • リレーションへはメソッドとしてもアクセスできるが、プロパティとしてアクセスでき、そのほうが性能が有利になる。なぜなら、実際にアクセスされた時にだけそのリレーションのデータはロードされる (遅延ロード) ため。
  • Eagerロード で N + 1 問題を回避できる。今回の例では、投稿一覧の取得で 1 回、取得できた 5 件の投稿の各ユーザを取得するのにさらに 5 回、 SQL が発行されていた。それを、 Eager ロードすることによって、 2 回の SQL 発行へ減らすことができた。
“【Laravel 5.5】WordPress の DB を使ってお勉強。投稿に紐づく投稿者情報をパッと取得する” の続きを読む