很想知道其他人如何实现以下目标?
表:
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());
// }
你知道更好的方法吗?
答案 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();