如何检查数据库中是否有数据
我的数据库看起来像这样
我的用户模型
public function monsters()
{
return $this->belongsToMany('App\Monster')->orderBy('star');
}
我的控制器
public function list_monster_user()
{
//GET USER LOGIN ID
$id = Auth::user()->id;
$monster_user = User::find($id);
//IF DATA IS NOT EMPTY OR USER HAVE MONSTERS
if(!is_null($monster_user->monsters))
{
return 'yes';
}
//IF DATA IS EMPTY OR USER DOESNT HAVE ANY MONSTER
else
{
return 'nope';
}
}
我正在使用ajax,因此结果将返回到ajax。
我没有得到我想要的回报。我知道我的if语句有问题。
但我无法理解。
答案 0 :(得分:2)
由于您没有遵循命名约定,因此应在belongsToMany
函数中指定所有字段。试试这个:
return $this->belongsToMany('App\Monster', 'karakter_has_monster', 'karakter_id', 'monster_id');
要检查结果,您可以使用count()
。它会更快。
if($monster_user->monsters()->count() > 0) {
//has monsters
}