API resources
Hotový JSON výstup pre SPA a mobilné backendy:
use RoundlyConsulting\Comments\Http\Resources\CommentResource;
return CommentResource::collection(
$post->threadedComments()->with(['actor', 'likes', 'media'])->get(),
);| Pole | Obsah |
|---|---|
id | ID komentára. |
body | Telo komentára. |
status | pending, approved alebo hidden. |
visible | Príznak viditeľnosti. |
parent_id | ID rodičovského komentára alebo null. |
locked | Či má komentár nastavený vlastný zámok vlákna. |
author | { type, id } autora — len pri načítanom vzťahu actor. |
likes | { count, viewer_state, breakdown } — len pri načítanom vzťahu likes. |
attachments | [{ id, url }] (UUID média + URL, pri súkromných prílohách podpísaná) — len pri načítanom vzťahu media. |
replies | Vnorené položky CommentResource — len pri načítaných replies. |
created_at / updated_at | Časové značky v ISO 8601. |
threadedComments() je verejné vlákno, takže JSON obsahuje len viditeľné a schválené komentáre najvyššej úrovne a odpovede. Resource vykreslí čokoľvek, čo dostane — kľúč replies je akýkoľvek načítaný vzťah replies — preto mu na verejných endpointoch odovzdávajte verejné query: threadedComments() alebo CommentQuery s visible() a withReplies().
Payload likes sa vykresľuje bez diváka, takže viewer_state je stav hosťa — údaje pre konkrétneho diváka získate cez withLikedState($viewer) v query alebo likeState($viewer). URL príloh sa určujú podľa viditeľnosti každej prílohy — pri súkromných sú podpísané a krátkodobé.
Kolekcie a stránkovanie
CommentCollection zbiera CommentResource a funguje aj so stránkovaným výsledkom:
use RoundlyConsulting\Comments\Facades\Comments;
use RoundlyConsulting\Comments\Http\Resources\CommentCollection;
return new CommentCollection(
Comments::for($post)->visible()->rootsOnly()->withReplies()->paginate(20),
);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.