---
title: "Čítanie a počty komentárov — Comments for Laravel | Roundly"
description: "Čítajte komentáre cez vzťahy modelu alebo fluentné CommentQuery — filtre, radenie, stránkovanie, únikové cesty a počty bez N+1."
url: https://roundly-consulting.com/sk/open-source/navody/comments-for-laravel/citanie-komentarov
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Comments for Laravel](https://roundly-consulting.com/sk/open-source/navody/comments-for-laravel.md)

# Čítanie a počty komentárov

## Vzťahy

```php
$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 on
```

## Fluentné 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:

```php
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 subject
```

withReplies() 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. |
| `whereMeta($path, $value) / whereMetaMissing($path)` | Filter podľa vlastných metaúdajov — pozrite Metaúdaje komentárov. |
| `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:

```php
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:

```php
$post->loadCommentCount();        // sets $post->comments_count

Post::withCommentCounts()->get(); // adds comments_count without N+1
```

comments\_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

```php
$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->meta;        // ?array — your own metadata, see Metadata
$comment->mentions;    // CommentMention rows
```

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/comments-for-laravel.md)
