---
title: "Členovia — Teams for Laravel | Roundly"
description: "Pridávajte, odoberajte a overujte členov; jeden riadok na člena, idempotentné pridanie s obnovou odobratých, udalosti pri zmene roly a soft delete."
url: https://roundly-consulting.com/sk/open-source/navody/teams-for-laravel/clenovia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Teams for Laravel](https://roundly-consulting.com/sk/open-source/navody/teams-for-laravel.md)

# Členovia

Členov pridávate, odoberáte a overujete cez handle tímu — alebo skratkou na modeli Team, ktorá spustí to isté volanie managera. Roly sú obyčajné reťazcové kľúče:

```php
use RoundlyConsulting\Teams\Facades\Teams;

$members = Teams::for($team)->members();

$member  = $members->add($user, 'member');                          // Member
$member  = $members->add($user, 'editor', meta: ['source' => 'import']);
$removed = $members->remove($user);   // bool — soft-deletes; false when not a member

$members->find($user);   // ?Member
$members->has($user);    // bool
$members->all();         // Collection<Member> — expired memberships included

$team->memberHasRole($user, 'editor');             // bool
$team->memberHasPermission($user, 'posts.edit');   // bool

// Model shorthand — the same manager call:
$team->addMember($user, 'member');
$team->removeMember($user);
```

## Idempotentné pridávanie

Tím má pre každého člena jediný riadok členstva — zaručuje to unikátny index, ktorý pokrýva aj mäkko zmazané riadky. Pridanie je idempotentné: opätovné pridanie aktívneho člena vráti jeho členstvo a rolu zmení, len ak sa líši — žiadne duplicitné riadky, žiadne obranné kontroly vo vašom kóde. expiresAt sa prepíše, len ak ho zadáte, a pôvodná prijatá pozvánka členstva sa nikdy neprepíše.

Opätovné pridanie člena, ktorý bol odobratý alebo ktorému členstvo vypršalo, obnoví ten istý riadok ako nové členstvo — rola, meta aj expirácia sa vezmú z nového volania (bez expiresAt je trvalé) — a spustí TeamMemberAdded. Obsadí miesto, takže platí MaxSeats:

```php
$members = Teams::for($team)->members();

$members->add($user, 'member');   // creates the membership — fires TeamMemberAdded
$members->add($user, 'member');   // no-op — returns the same Member
$members->add($user, 'admin');    // updates the role — fires TeamMemberRoleChanged

$members->remove($user);          // soft-deletes the row
$members->add($user, 'member');   // revives that row as a fresh membership — fires TeamMemberAdded
```

Pridávanie beží v transakcii, ktorá zamkne riadok tímu, takže súbežné pridania — dvojité odoslanie formulára, dvaja ľudia prijímajúci posledné miesto — idú za sebou: jeden riadok na člena a limit miest platí.

## Zmena roly a odobratie

```php
Teams::for($team)->members()->changeRole($bob, 'admin');   // Member — throws MemberNotFoundException for a non-member
Teams::for($team)->members()->remove($bob);                // bool — soft-deletes the membership

$team->findMember($bob)?->removeFromTeam();                // bool — the same, from the Member side
```

Zmena roly spustí TeamMemberRoleChanged (s pôvodnou rolou) len vtedy, keď sa rola naozaj zmení; zmena roly modelu, ktorý nie je členom, vyhodí MemberNotFoundException. Odobratie spustí TeamMemberDeleted a je to soft delete — riadok zostáva kvôli auditu a opätovné pridanie člena ho obnoví.

## Model Member

```php
$member = $team->findMember($user);

$member->role;             // 'admin' — the stored role key
$member->role();           // ?Role — resolved (per-team aware); null once expired
$member->member;           // the member model (MorphTo)
$member->team;             // the Team
$member->meta;             // Collection
$member->expires_at;       // ?Carbon
$member->isExpired();      // bool
$member->acceptedInvite;   // the Invite this member joined through, or null
```

## Limit miest

Ak má tím nastavenie MaxSeats, pridanie nového člena — aj obnovenie odobratého či expirovaného — vyhodí TeamsException, keď počet aktívnych členov dosiahne limit. Opätovné pridanie aktívneho člena limit nikdy nespustí — pozrite Nastavenia tímu.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/teams-for-laravel.md)
