Príslušnosti a vzťahy
Contact je Connectable cez connections-for-laravel. Prepájajte kontakty navzájom aj s vlastníkmi pomocou voľného druhu vzťahu riadeného konfiguráciou:
$person->connectTo($company, ['employee']); // raw connection
$person->relateTo($company, 'works_at'); // typed kind, stored in meta
$person->relationsOfKind('works_at'); // contacts related under a kind
$person->inviteConnection($company); // pending -> accept/block
$company->acceptConnectionFrom($person);
Contacts::sharedWith($owner); // contacts connected to an owner- relateTo(Connectable $other, string $kind, array $meta = []) — uloží druh do meta prepojenia, zlúčený s ďalšími meta, ktoré odovzdáte. Opakované volanie je idempotentné.
- relationsOfKind(string $kind) — kontakty, s ktorými je tento kontakt v danom vzťahu.
- Vzťah kontaktu so sebou samým vyhodí RelationshipException.
- Contacts::sharedWith($owner) — kontakty prepojené s vlastníkom, takže jeden zdieľaný kontakt (napríklad dodávateľ) môže patriť viacerým vlastníkom bez duplikácie. Vlastník musí byť Connectable.
API prepojení
Na každom kontakte je dostupné celé API prepojení — pozvánky, blokovanie, expirácia aj odstránenie:
$person->relateTo($company, 'works_at', ['since' => '2024-03']); // extra meta
$person->relateTo($company, 'works_at'); // idempotent — still one edge
$person->connectTo($consultant, ['contractor'], now()->addDays(30)); // expiring edge
$person->expiringConnections(); // edges expiring within 7 days
$person->disconnectFrom($consultant);
$company->blockConnectionFrom($person);Obmedzenie druhov vzťahov
Povolené druhy obmedzíte cez contacts.relationship_kinds. Vzťah s iným druhom vyhodí RelationshipException:
// config/contacts.php — empty = free-form; a list or a kind => label map restricts kinds
'relationship_kinds' => [
'works_at' => 'Works at',
'spouse_of' => 'Spouse of',
'reports_to' => 'Reports to',
],Soft delete kontaktu presunie do koša jeho hrany vzťahov v oboch smeroch, restore() ich vráti a forceDelete() ich odstráni natrvalo.
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.