Vytváranie tímov
Tím vytvoríte z DTO CreateTeamData cez fasádu — tá pridá vlastníka a Teams::fake() volanie zaznamená:
use RoundlyConsulting\Teams\DataTransferObjects\CreateTeamData;
use RoundlyConsulting\Teams\Facades\Teams;
$team = Teams::create(new CreateTeamData(
name: 'Acme Inc',
isPublic: false, // default false
owner: $user, // default null — added as a member with the owner role
meta: ['plan' => 'pro'], // default []
));Ak zadáte vlastníka, tím dostane jeho morph a vlastník sa pridá ako člen s rolou roles.owner (predvolene owner). Bez vlastníka tím nemá vlastníka ani žiadneho úvodného člena. Všetko po vytvorení ide cez Teams::for($team) — pozrite Fasáda Teams.
Priame vytvorenie tímu
Team je bežný Eloquent model, takže funguje aj Team::create() — vytvorí však len riadok, bez vlastníka ako člena:
use RoundlyConsulting\Teams\Models\Team;
$team = Team::create([
'name' => 'Acme Design',
'is_public' => false,
'meta' => ['pricing' => 'per_member'],
]);
// Scopes
Team::query()->public()->get(); // only public teams
Team::query()->withMember($user)->get(); // teams the model belongs toRelácie tímu
$team->members(); // HasMany<Member>
$team->invites(); // HasMany<Invite>
$team->joinRequests(); // HasMany<JoinRequest>
$team->teamRoles(); // HasMany<TeamRole> — per-team role overrides
$team->owner(); // MorphTo — the owning model (nullable)
$team->name; // string
$team->is_public; // bool
$team->meta; // Collection, cast from JSONVyhľadávanie cez fasádu
Teams::roles()->find('admin'); // ?Role
Teams::roles()->all(); // array<string, Role>
Teams::permissions()->all(); // array<string, Permission>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 kryptomienOdoslaní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.