Laravel:未定义属性:Illuminate\Database\Eloquent

我正在使用 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');

}


天涯尽头无女友
浏览 100回答 1
1回答

慕村9548890

()on 状态检索查询生成器,而不是记录。您可以通过这样做轻松地清理代码,以将各个行递增一。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();    }}
打开App,查看更多内容
随时随地看视频慕课网APP