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

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

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ú

ČlenTraitÚčel
comments()HasCommentsVšetky komentáre na modeli (MorphMany).
approvedComments()HasCommentsViditeľné a schválené komentáre najvyššej úrovne, zoradené podľa comments.order.
threadedComments()HasCommentsVerejné 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()HasCommentsNačíta comments_count — všetky viditeľné a schválené komentáre vrátane odpovedí.
withCommentCounts()HasCommentsScope, ktorý pridá ten istý verejný comments_count bez N+1.
commentsLocked()HasCommentsČi je diskusia modelu zamknutá.
writtenComments()GivesCommentsVšetky komentáre, ktoré model napísal (MorphMany).
writeComment()GivesCommentsNapíše komentár na subjekt v mene tohto autora.
$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, v odpovediach aj vo fluentnom query. 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:

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

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.