Laravel 获取模型,其中relationship=id

Laravel 获取模型,其中relationship=id,laravel,eloquent,laravel-5.3,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->

想知道其他人是如何实现以下目标的吗

表:

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());
// }

你知道更好的方法吗?

如果你想让所有团队都有一个特定的用户id,试试看

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

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

这是假设您已经在每个模型中定义了BelongToMany关系。

如果您试图获取具有特定用户id的所有团队,请尝试

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

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

这是假设您已经在每个模型中定义了belongTomany关系。

也许您会喜欢以更传统的方式进行

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

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

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