---
title: "Príprava modelov — Comments for Laravel | Roundly"
description: "Pridajte HasComments modelom, ktoré prijímajú komentáre, a GivesComments autorom — alebo použite vlastný model Comment."
url: https://roundly-consulting.com/sk/open-source/navody/comments-for-laravel/priprava-modelov
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)

# Príprava modelov

Trait HasComments pridajte všetkému, čo sa dá komentovať, a GivesComments všetkému, čo môže komentár napísať (typicky modelu User):

```php
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Comments\Traits\HasComments;
use RoundlyConsulting\Comments\Traits\GivesComments;

class Post extends Model
{
    use HasComments;
}

class User extends Model
{
    use GivesComments;
}
```

## Čo jednotlivé traity pridávajú

| Člen | Trait | Účel |
| --- | --- | --- |
| `comments()` | HasComments | Všetky komentáre na modeli (MorphMany). |
| `approvedComments()` | HasComments | Viditeľné a schválené komentáre najvyššej úrovne, zoradené podľa comments.order. |
| `threadedComments()` | HasComments | Verejné vlákno: viditeľné a schválené komentáre najvyššej úrovne len s viditeľnými a schválenými odpoveďami, až po max\_depth. |
| `loadCommentCount()` | HasComments | Načíta comments\_count — všetky viditeľné a schválené komentáre vrátane odpovedí. |
| `withCommentCounts()` | HasComments | Scope, ktorý pridá ten istý verejný comments\_count bez N+1. |
| `commentsLocked()` | HasComments | Či je diskusia modelu zamknutá. |
| `writtenComments()` | GivesComments | Všetky komentáre, ktoré model napísal (MorphMany). |
| `writeComment()` | GivesComments | Napíše komentár na subjekt v mene tohto autora. |

```php
$post->comments;               // every comment on the post
$post->approvedComments;       // visible + approved top-level comments, ordered per config
$post->threadedComments;       // the public thread: visible + approved roots and replies
$post->commentsLocked();       // bool — is the post's comment section locked?

$user->writtenComments;        // every comment the user authored
$user->writeComment($post, 'Great article!');
```

## Vlastný model Comment

Ak potrebujete ďalšie stĺpce, casty alebo správanie, nastavte comments.model na potomka pribaleného modelu Comment. Balík model vyhľadáva cez tento kľúč všade — pri zápise, vo vzťahoch (vrátane komentára, ku ktorému patrí zmienka), v odpovediach, vo fluentnom query, vo factory modelu Comment aj v pomocníkoch AssertsComments. Akákoľvek hodnota, ktorá nie je pribalený Comment ani jeho potomok — neexistujúca trieda, trieda, ktorá nie je model, či nesúvisiaci model —, vyhodí InvalidConfigurationException s názvom kľúča; balík sa nikdy potichu nevráti k pribalenému modelu:

```php
namespace App\Models;

use RoundlyConsulting\Comments\Models\Comment as BaseComment;

class Comment extends BaseComment
{
    // extra columns, casts, relations and behaviour
}

// config/comments.php
'model' => App\Models\Comment::class,
```

Pribalený Comment už implementuje HasMedia, Likeable a Reportable a používa soft deletes — váš potomok tak zdedí páčiky, nahlásenia, prílohy aj všetko ostatné.

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