Googleドライブの仕様が変わっていて「マイドライブ」で同期するローカルフォルダの変更に手間取ったお話
[2023/02/22]
DB::table() ->leftJoin() で第二引数にクロージャーを渡せるので、その中でフィルタ的な処理を書き込む。
ユーザーが投稿した記事の一覧を取得する際はこんな感じで LEFT JOIN を指定。
$users = DB::table('users')
        ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
        ->get();ただし、この場合だと LEFT JOIN (テーブル名) ON (条件式…)の 条件式… 部分に1つの条件(通常はキーカラムをマッチさせる)しか指定できない。
「削除フラグが立っている記事は除外したい」なんて時には、クロージャを使って複数条件を設定可能。
下記ソース内の $join には JoinClause オブジェクトが渡ってくる。(JoinClause の詳細)
DB::table('users')
    ->leftJoin('posts', function ($join) {
        $join->on('users.id', '=', 'posts.user_id')
             ->where('posts.del_flg', '=', false);
    })
    ->get();
参考情報:下記公式サイトの「上級のJOIN文」部分を参照
ディスカッション
コメント一覧
まだ、コメントがありません