Čítanie a počty komentárov
Vzťahy
$post->comments; // every comment written on the post
$post->approvedComments; // visible + approved top-level comments, ordered per config
$user->writtenComments; // every comment authored by the user
$comment->actor; // the model that wrote the comment (null for anonymous)
$comment->commentable; // the model the comment was written onFluentné query
Comments::query() vráti CommentQuery naprieč celým webom; Comments::for($subject) a Comments::byAuthor($author) ho vrátia už zúžený — čítaciu stranu, ktorá zrkadlí builder na zápis. Reťazte filtre a radenie, potom načítajte výsledky:
use RoundlyConsulting\Comments\Facades\Comments;
Comments::for($post)->approved()->newest()->paginate(20);
Comments::for($post)->visible()->rootsOnly()->withReplies()->get(); // public replies only
Comments::for($post)->pending()->count();
Comments::byAuthor($user)->get();
Comments::query()->hidden()->newest()->get(); // site-wide, every subjectwithReplies() 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.
| Metóda | Účel |
|---|---|
for($subject) / byAuthor($author) | Zúžia query — dajú sa reťaziť aj na Comments::query(). |
approved() / pending() / hidden() | Filter podľa stavu moderovania. |
visible() | Príznak visible zapnutý A stav approved. |
rootsOnly() | Len komentáre najvyššej úrovne. |
withReplies() | Načíta vnorené odpovede až po max_depth — pri query s visible() len viditeľné a schválené, inak všetky. |
newest() / oldest() | Radenie podľa created_at. |
orderByLikesDesc() / orderByTrending() | Poradie podľa páčikov — pozrite Páčiky a poradie. |
mostReported() / reportedMoreThan() / withReportCounts() | Moderovacie fronty — pozrite Nahlasovanie a automatické moderovanie. |
get() / paginate($perPage = 15) / count() | Načíta, stránkuje alebo spočíta výsledky. |
approveAll() / hideAll() / deleteAll() | Hromadné moderovanie — pozrite Moderovanie. |
tap($callback) / query() | Upraví podkladový Eloquent builder alebo ho vráti. |
Únikové cesty
Keď vstavané filtre nestačia, tap() vám odovzdá podkladový Eloquent builder a query() ho vráti:
Comments::for($post)
->visible()
->tap(fn ($query) => $query->where('created_at', '>=', now()->subWeek()))
->get();
$builder = Comments::for($post)->approved()->query(); // the underlying Builder<Comment>Počty komentárov
Zobrazte „X komentárov“ vo výpisoch bez počítania pre každý riadok. Oba pomocníky nastavia atribút comments_count:
$post->loadCommentCount(); // sets $post->comments_count
Post::withCommentCounts()->get(); // adds comments_count without N+1comments_count je to, čo vidí verejnosť: všetky viditeľné a schválené komentáre na subjekte vrátane odpovedí — tie isté záznamy ako Comment::visible(). Komentáre pending, hidden a visible(false) sa nikdy nezapočítajú.
Atribúty komentára
$comment->comment; // the body (stored in the `comment` column)
$comment->status; // CommentStatus enum
$comment->visible; // bool
$comment->parent_id; // ?int — null for top-level comments
$comment->locked_at; // ?Carbon — set when the thread under this comment is locked
$comment->mentions; // CommentMention rowsPrejavte 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.