Php 在Laravel 5.0中,用户相关功能的适当位置在哪里

Php 在Laravel 5.0中,用户相关功能的适当位置在哪里,php,laravel,Php,Laravel,我的应用程序的相关部分设置如下: 用户表,具有唯一的用户ID 团队表,具有唯一的团队ID 团队成员表,带有 一个唯一的ID和一列用户ID和团队ID,表示 用户属于某个团队 一个用户可以加入无限数量的团队 我有一个函数来检索给定用户所属的团队数组。它通常会在当前登录用户的范围内调用,以获取其活动团队,但也会在管理功能中使用,以返回具有给定用户ID的团队 我的第一个想法是使函数可以从用户模型调用,因此对于给定的用户对象,我可以执行以下操作 $teams = $user->get_teams

我的应用程序的相关部分设置如下:

  • 用户表,具有唯一的用户ID
  • 团队表,具有唯一的团队ID
  • 团队成员表,带有 一个唯一的ID和一列用户ID和团队ID,表示 用户属于某个团队
一个用户可以加入无限数量的团队

我有一个函数来检索给定用户所属的团队数组。它通常会在当前登录用户的范围内调用,以获取其活动团队,但也会在管理功能中使用,以返回具有给定用户ID的团队

我的第一个想法是使函数可以从用户模型调用,因此对于给定的用户对象,我可以执行以下操作

$teams = $user->get_teams();


但我不确定这是否在Laravel中被普遍认为是此类功能的最佳实践。这个函数应该放在哪里?

实际上,如果您使用的是雄辩的语言,您正在谈论的是laravel已经为您做过的事情

使用illumb\Database\elount\Model;
类用户扩展模型
{
受保护的$table='users';
公共职能小组()
{
返回$this->belongtomany(团队::类);
}
}
类团队扩展模型
{
受保护的$table='团队';
公共功能用户()
{
返回$this->belongtomany(用户::类);
}
}
除了
用户
团队
表之外,您还可以创建一个透视表:

team_user
    id - integer
    team_id - integer
    user_id - integer
剩下的就交给拉威尔了

$userId=1;
$user=user::with('teams')->find($userId);
$teams=$user->teams;

漂亮!我对Laravel和功能齐全的ORM非常陌生,比如一般来说雄辩的ORM,所以这是一个很好的发现。不过,作为将来的参考,如果我必须为类似的东西创建一个自定义函数,那么用户模型是否是放置它的正确位置?
team_user
    id - integer
    team_id - integer
    user_id - integer