---
title: "Traity modelov — Teams for Laravel | Roundly"
description: "HasTeams dá ľubovoľnému modelu členstvá, vlastníctvo, roly a oprávnenia; BelongsToTeam pridá prepínateľný aktuálny tím."
url: https://roundly-consulting.com/sk/open-source/navody/teams-for-laravel/traity-modelov
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)

# Traity modelov

Členovia sa ukladajú polymorfne, takže členom tímu môže byť akýkoľvek Eloquent model — používateľ, hosťovský účet či API klient. Pridajte trait HasTeams na model, ktorý vystupuje ako člen, a získate pomocníkov pre členstvo, vlastníctvo, roly a oprávnenia:

```php
use Illuminate\Foundation\Auth\User as Authenticatable;
use RoundlyConsulting\Teams\Traits\HasTeams;

class User extends Authenticatable
{
    use HasTeams;
}
```

## API traitu HasTeams

```php
$user->teams();                                    // MorphMany<Member> — the model's memberships
$user->ownedTeams();                               // MorphMany<Team> — teams this model owns
$user->hasTeam();                                  // belongs to any team
$user->belongsToTeam($team);                       // is a member of $team
$user->isMemberOf($team);                          // alias of belongsToTeam()
$user->ownsTeam($team);                            // is the owner of $team
$user->teamsWithRole('admin');                     // Collection<Member> holding that role
$user->teamRole($team);                            // ?Role — the resolved role on $team
$user->hasTeamRole($team, 'admin');                // bool
$user->hasTeamPermission($team, 'billing.manage'); // bool
```

teams() vracia členstvá modelu — riadky Member, každý so svojím tímom a rolou — nie modely Team. Ak potrebujete samotné tímy, použite Team::query()->withMember($user).

## Aktuálny tím cez BelongsToTeam

Pre aplikácie s prepínačom tímov dá BelongsToTeam modelu jeden aktuálny tím cez stĺpec team\_id. Pokojne ho kombinujte s HasTeams:

```php
use Illuminate\Foundation\Auth\User as Authenticatable;
use RoundlyConsulting\Teams\Traits\BelongsToTeam;
use RoundlyConsulting\Teams\Traits\HasTeams;

class User extends Authenticatable
{
    use BelongsToTeam;   // team() + switchTeamTo()
    use HasTeams;        // memberships, roles, permissions
}

$user->team;                  // the current Team (BelongsTo)
$user->switchTeamTo($team);   // associates + saves, returns $user
```

Stĺpec patrí do vašej vlastnej tabuľky, preto k nemu balík migráciu nedodáva — pridajte si nullable team\_id sami:

```php
Schema::table('users', function (Blueprint $table): void {
    $table->foreignId('team_id')->nullable()->constrained();
});
```

## 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)
