Mik*_*e F 2 laravel eloquent laravel-4
我有以下型号:
/* Team.php */
class Team extends Eloquent {
public function users() {
return $this->belongsToMany('User');
}
}
/* User.php */
class User extends Eloquent {
public function teams() {
return $this->hasMany('Team');
}
}
Run Code Online (Sandbox Code Playgroud)
和数据库结构:
teams
id
user_id
name
users
id
email
team_user
id
team_id
user_id
Run Code Online (Sandbox Code Playgroud)
用户可以创建(并拥有-因此拥有team.user_id)一个团队,但也可以属于其他团队。
如果可能的话,我希望能够使用Eloquent来获得特定用户的所有团队,而无需执行如下自定义SQL查询:
SELECT teams.*
FROM teams
JOIN team_user
ON (team_user.team_id = teams.id)
WHERE team_user.user_id = ?
Run Code Online (Sandbox Code Playgroud)
自定义SQL查询有效,但我确信这不是Laravel中解决此问题的本机方法。
有人可以帮忙吗?在此先感谢您的阅读。
为了回答标题中的问题,以下是如何在用户模型中定义布尔函数以了解数据透视表“ team_user”中是否存在关系:
public function isPartOfThe($team)
{
return $this->teams()->where('team_id', $team->id)->exists();
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以按以下方式在控制器中调用该函数:
If($user->isPartOfThe($team)
{
//true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4505 次 |
| 最近记录: |