[Laravel7.2]クエリビルダでよく忘れる内容

Laravel

select

select句でSQLの関数を使用する。

->select(
	DB::raw('DATE_FORMAT(timecards.dt, \'%Y年%m月\') as fm'),
	DB::raw('count(*) as working_days')
)

leftJoin

on句で複数の条件を指定する。

->leftJoin('holidays', function($join) {
	$join->on('timecards.dt', '=', 'holidays.dt')
	->whereNull('holidays.deleted_at');
})

ソフトデリートは、joinしているテーブルには効かない…

where

and条件とor条件を組み合わせる。

->where(function($query) {
	$query->whereNull('holidays.id')
	->orWhereIn('timecards.cd', [0,7])
	->orWhereNull('time_cards.id');
})

whereRaw

where句でSQL関数を使用する。

->whereRaw('WEEKDAY(timecards.dt) < ?', 5)

その他

よく忘れる内容は随時更新する。

コメント

タイトルとURLをコピーしました