Laravelのクエリビルダでnullを判定する

Laravelのクエリビルダでnullの場合(nullでない場合)という条件を加える方法をメモ。

whereNotNull

テーブルは以下のような内容になっています。

judges-null-in-the-query-builder-of-laravel01

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の先頭のレコードを取得できました。
 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930