NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Teams for Laravel

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:

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

class User extends Authenticatable
{
    use HasTeams;
}

API traitu HasTeams

$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:

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:

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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.