Как проверить, есть ли данные из базы данных
Моя БД выглядит так
Моя модель пользователя
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 что-то не так.
Но я не мог этого понять.






Поскольку вы не соблюдаете соглашения об именах, вам следует указать все поля в функции belongsToMany. Попробуй это:
return $this->belongsToMany('App\Monster', 'karakter_has_monster', 'karakter_id', 'monster_id');
А чтобы проверить результаты, вы можете использовать count(). Быстрее бы.
if ($monster_user->monsters()->count() > 0) {
//has monsters
}