通过关系模拟第二登录并查询



有哪些方法可以模拟没有密码的其他登录(1个用户,一些可播放的字符(。

用户创建团队时,它起作用。但角色创建/加入团队确实更有意义。由于用户hasmany字符,我完全被搞砸了。我怎么知道哪个角色创建/加入团队?只有1个用户很容易。

可能缺少一些一般的编程技能,但我正在学习!

关系
用户hasmany字符<>字符属于用户
角色属于团队<>团队Hasmany角色

url
在团队中。索引我真的没有如何收集团队的所有角色。这URL目前只是/team。我必须使用诸如/{character}/{team}之类的东西吗?但是我喜欢/team的简单性。

代码
我想出了以下内容的变体,但是如果感觉错了。是错误的:d

// how would the app know which of the Characters.Team we need. App and me don't know...
$team = auth()->user()->characters()->team()->first();
$characters = AppCharacter::where('team_id', $team->id)->get();

请为我澄清一下!

关系错误吗?
我的方法错了吗?
我是否缺少轻松的Laravel魔法?

谢谢。

您的方法可能不正确,尽管有一些丢失的信息。

您已经说A 用户可以具有许多字符,并且A Team 可以具有许多字符。一个字符可以在多个团队

由于您提出了两个问题,我将首先回答。

由于您询问如何获得团队的角色,因此首先考虑您需要了解团队,然后才能寻找角色。因此,您的URL可能是:

/team/{team id}/

由于您想特别了解团队中的角色,而不一定要了解团队本身,因此您可以附加URL询问这些角色。

/team/{team id}/characters

在问题的后半部分,您不需要了解用户或其角色。只是来自与您在URL相同的关系中的方向。

class Team extends Model {
  public function characters() {
    return $this->hasMany(Character::class);
  }
}

在您的控制器中:

$team = Team::with(['characters'])->find($teamId);

最新更新