Допустим, у вас есть две эти модели: User
и Role
, которые устанавливают отношения многие ко многим.
Если вы правильно определили свои отношения:
/** User.php */
public function roles()
{
return $this->belongsToMany(Role::class);
}
-
/** Role.php */
public function users()
{
return $this->belongsToMany(User::class);
}
Тогда вы можете использовать отношения, чтобы выполнить то, что вы пытаетесь сделать.
от связанного объекта:
$user = User::find(1);
// getting all the roles attached with a user:
$roles = $user->roles;
// getting all the roles attached with a user that has certain ids:
$roles = $user->roles()->whereIn('id', [2, 4, 6])->get();
Кроме того, вы можете найти желаемую связанную модель, используя экземпляр коллекции, который возвращает отношение:
$user = User::find(1);
// getting all the roles attached with a user:
$roles = $user->roles;
// getting a specific role attached to a user:
$specific_role = $roles->where('id', 6)->first();