Laravel: неопределенное свойство: Illuminate \ Database \ Eloquent \ Relations \ HasMany :: $ game - PullRequest
0 голосов
/ 17 января 2020

Я создаю игру, используя PHP и Laravel. А теперь я хочу сохранить некоторые записи, такие как сыгранные игры, выигрыши, которые они получили, и проигрыши. Но как я могу сохранить эти записи для пользователя, который вошел в систему?

Я пробовал это, но я получаю ошибку (название поста);

    public function winGame() {
    if(isset(Auth::user()->email)) {
        $user = User::find(Auth::user()->id);

        $games = $user->statuses()->game;
        $gamesPlus = $games + 1;

        $wins = $user->statuses()->wins;
        $winsPlus = $wins + 1;

        $user->statuses()->save($gamesPlus, $winsPlus);
    }
}

И я не могу используйте метод DB :: только имя модели.

пользователь модели:

public function statuses()
{
    return $this->hasOne('App\Status');
}

статус модели:

public function user()
{
    return $this->belongsTo('App\User');
}

1 Ответ

1 голос
/ 17 января 2020

() в статусах возвращает построитель запросов, а не запись. Вы можете легко очистить код, выполнив это, чтобы увеличить отдельные строки на единицу.

public function winGame() {
    if(isset(Auth::user()->email)) {
        $user = Auth::user();

        $user->statuses->game++;
        $user->statuses->wins++;

        $user->statuses->save();
    }
}

Или, даже немного более читабельно,

public function winGame() {
    if(isset(Auth::user()->email)) {
        $status = Auth::user()->statuses;

        $status->game++;
        $status->wins++;

        $status->save();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...