Laravelのクエリビルダでnullの場合(nullでない場合)という条件を加える方法をメモ。
whereNotNull
テーブルは以下のような内容になっています。
UserAの先頭のレコードを取得して、idを返してみます。
PHP
<?php namespace App\Http\Controllers; use App\Sample; class queriesController extends Controller { public function getIndex() { $data = Sample::where('username', 'UserA')->first(); $id = $data->id; return var_dump($id); // int(11) } }
上記サンプルで取得したレコードのcreated_atはnullですが、created_atがnullではないレコードを取得するようにしてみます。
PHP
<?php namespace App\Http\Controllers; use App\Sample; class queriesController extends Controller { public function getIndex() { $data = Sample::where('username', 'UserA')->whereNotNull('created_at')->first(); $id = $data->id; return var_dump($id); // int(13) } }
UserAでcreated_atがnullではない先頭のレコードを取得できました。
whereNull
UserBの先頭のレコードを取得して、idを返してみます。
PHP
<?php namespace App\Http\Controllers; use App\Sample; class queriesController extends Controller { public function getIndex() { $data = Sample::where('username', 'UserB')->first(); $id = $data->id; return var_dump($id); // int(12) } }
今度は逆にcreated_atがnullのレコードを取得するようにしてみます。
PHP
<?php namespace App\Http\Controllers; use App\Sample; class queriesController extends Controller { public function getIndex() { $data = Sample::where('username', 'UserB')->whereNull('created_at')->first(); $id = $data->id; return var_dump($id); // int(14) } }
UserBでcreated_atがnullの先頭のレコードを取得できました。
【参考サイト】
コメントが承認されるまで時間がかかります。