有什么方法可以模拟另一个没有密码的登录(1个用户,一些可玩的角色)。
用户创建团队时有效。但是,角色创建/加入团队更有意义。由于用户有多个角色,我完全搞砸了。我怎么知道所有角色创建/加入团队中的哪一个?只有1个用户这样做很容易。
可能缺少一些通用的编程技巧,但我正在学习!
关系
用户有多个字符<>字符属于用户
角色所属团队<>团队拥有多个角色
网址
在team.index中,我真的不知道如何收集团队的所有角色。该
网址目前仅为/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 = \App\Character::where('team_id', $team->id)->get();
请为我澄清这个!
关系错了吗? 我的方法有误吗? 我错过了简单的Laravel魔法吗?
谢谢。
答案 0 :(得分:0)
虽然有一些缺失信息,但您的方法可能不正确。
您已声明用户可以包含多个字符,并且团队可以包含多个字符。 角色可以在多个团队上吗?
既然你问过两个问题,我会先回答第一个问题。
由于您在询问如何获取团队角色,因此首先要考虑您需要先了解团队才能查找角色。所以你的网址可能是这样的:
/team/{team id}/
由于您想要专门了解团队中的角色,而不一定了解团队本身,您可以附上网址来询问这些角色。
/team/{team id}/characters
对于问题的后半部分,您不需要了解用户或其角色。你的关系中的方向与你为网址的方向相同。
class Team extends Model {
public function characters() {
return $this->hasMany(Character::class);
}
}
在您的控制器中:
$team = Team::with(['characters'])->find($teamId);