获取models = id的模型

时间:2017-03-01 00:12:28

标签: laravel eloquent laravel-5.3

很想知道其他人如何实现以下目标?

表:

teams 
teams_users (pivot many teams, many users)
users

我想要实现的目标

$teams->user->where('user_id', $id)->get();

但是我必须运行一个循环,并在团队模型上创建另一个方法来获取(id,name)

// foreach ($teams as $team) {
//     # code...
//     dump($team->getUserIdsAttribute());
// }

你知道更好的方法吗?

2 个答案:

答案 0 :(得分:4)

如果您尝试让所有团队都拥有特定的用户ID。尝试

$teams = Team::with(['users' => function ($query) use ($id) {
    $query->where('id', '=', $id);
}])->get();

或通过用户

$user = User::with('teams')->find($id);

这假设您已经在每个模型中定义了belongsToMany()关系。

答案 1 :(得分:0)

也许你会喜欢用更传统的方式来做

    use Illuminate\Database\Eloquent\Builder;
    $team = Team::whereHas('user',function(Builder $query) use ($id){
        $query->where( 'user_id' , $id );
    })->get();