Laravel, если нет данных из отношения «многие ко многим» - PullRequest
0 голосов
/ 29 мая 2018

Как проверить, есть ли данные из базы данных или нет
Моя БД выглядит так

enter image description here

Моя модель пользователя

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.
Я не получаю возвращение, которое хочу.Я знаю, что с моим утверждением что-то не так.
Но я не мог этого понять.

1 Ответ

0 голосов
/ 29 мая 2018

Поскольку вы не следуете соглашениям по присвоению имен, вы должны указать все поля в функции belongsToMany.Попробуйте это:

return $this->belongsToMany('App\Monster', 'karakter_has_monster', 'karakter_id', 'monster_id');

И чтобы проверить результаты, вы можете использовать count().Это было бы быстрее.

if($monster_user->monsters()->count() > 0) {
    //has monsters
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...