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

Odpovede vo vláknach

Odpoveď sa ukladá s pôvodným subjektom — takže ploché výpisy na článku fungujú ďalej — aj s odkazom parent_id na komentár, na ktorý odpovedá. Napíšete ju cez reply() v builderi alebo parent: v DTO:

use RoundlyConsulting\Comments\Facades\Comments;

$root = Comments::on($post)->as($alice)->body('Great article.')->post();

$reply = Comments::on($post)->as($bob)->reply($root)->body('Agreed.')->post();

$reply->parent_id === $root->id;   // true
$reply->commentable->is($post);    // true — a reply lives on its parent's subject

Comments::on($otherPost)->reply($root)->body('Nope')->post();   // throws InvalidCommentParentException

Subjekt odovzdaný do Comments::on() určuje rozsah: rodič, ktorý patrí inému subjektu — s iným id alebo iným morph typom pri rovnakom id — vyhodí InvalidCommentParentException, namiesto toho, aby sa odpoveď presunula k subjektu rodiča. Rovnaké pravidlo platí pre WriteCommentData odovzdané do write().

Čítanie vlákien

// Direct children of a comment (every status — filter before showing them publicly):
$comment->replies;

// The comment a reply answers:
$reply->parent;

// The public thread: visible + approved top-level comments, with only visible + approved
// replies eager-loaded (bounded by max_depth). A hidden, pending or visible(false) comment
// never loads, and neither does anything below it:
$post->threadedComments()->get();

// Every root with every reply, for a moderation view:
Comments::for($post)->rootsOnly()->withReplies()->get();

// Only top-level comments:
$post->comments()->whereNull('parent_id')->get();
$post->comments()->roots()->get();

threadedComments() je verejné vlákno. withReplies() v query sa riadi viditeľnosťou query: pri query s visible() (v ľubovoľnom poradí) sa na každej úrovni načítajú len viditeľné a schválené odpovede; bez visible() sa načítajú všetky odpovede, ako pre moderátorský pohľad.

Limit hĺbky

Komentár najvyššej úrovne má hĺbku 1, jeho priama odpoveď hĺbku 2 atď. Odpoveď hlbšie ako comments.max_depth (predvolene 5) vyhodí MaxReplyDepthExceededException — mäkko zmazaný predok sa do hĺbky stále započítava. threadedComments() aj withReplies() v query načítajú vnorené odpovede po úrovniach až po max_depth, takže aj hlboké vlákno sa načíta pevným počtom dotazov.

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.