【发布时间】:2020-05-04 13:56:59
【问题描述】:
我正在使用 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');
}
【问题讨论】:
-
status也有模型吗?
-
您需要添加更多详细信息,例如定义关系的用户模型。描述其他实体及其与用户模型的关系。你想更新什么属性? btw
$user = User::find(Auth::user()->id);没用,将其更改为$user = Auth::user();对于错误,您正在尝试通过关系访问查询构建器上的属性。 -
既然是
hasMany,你需要遍历不同的状态。或者将其更改为 hasOne 关系,在这种情况下,您只需修改现有记录即可使代码更容易。 -
是的,状态有一个模型,我用 hasMany 代替 hasOne 但 hasOne 也不起作用。
-
()检索数据库查询的查询构建器。删除它以获取单个记录/关系集合。