【Laravel】関連(relation)のモデルが存在するかどうかをチェックする

laravel-relation

Laravelでモデルのリレーション先のモデルのデータの存在チェックをしたい場合ってありますよね。

今回は簡単に存在の有無をtrue/falseのbooleanで取得する方法を招待します。

関連(relation)のモデルが存在するかどうかをチェックする

hasMany , belongsTo belongsToMany のいずれのリレーションでも使えます。

isEmptyメソッドを使います。

PostモデルはhasManyでCommentモデルとリレーションしているとして

// Post

public function comments()
{
  return $this->hasMany(Comment::class);
}

 

このとき、postのモデルに紐づくcommentsのデータが存在するかどうかを確認するには次のとおりです。

$post = Post::find(1);
$post->find(1)->comments->isEmpty()

公式リファレンスなどはこちらの記事にも乗っています。

確認してみてください。

 

 

またLaravelの公式リファレンスだとこちら

https://laravel.com/docs/master/collections#method-isempty