---
title: "Presun komentárov — Comments for Laravel | Roundly"
description: "Pri zlúčení duplicitných záznamov presuňte celú diskusiu z jedného na druhý — vrátane odpovedí, zadržaných a zmazaných komentárov, páčikov aj príloh."
url: https://roundly-consulting.com/sk/open-source/navody/comments-for-laravel/presun-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)

# Presun komentárov

Comments::transfer($from, $to) presunie všetky komentáre jedného subjektu na iný a vráti, koľko ich presunul — pre zlúčenie dvoch záznamov, napríklad duplicitných tiketov alebo dvoch článkov o tej istej veci. V jednej transakcii presmeruje polymorfný vzťah commentable všetkých komentárov $from: komentáre najvyššej úrovne aj odpovede, neviditeľné, pending aj hidden a tiež mäkko zmazané, takže neskoršie obnovenie skončí na $to:

```php
use RoundlyConsulting\Comments\Facades\Comments;

$moved = Comments::transfer($duplicate, $original);   // int — e.g. 4
```

## Čo sa presunie spolu s komentármi

- Odpovede si ponechajú parent\_id a každý rodič sa presunie s nimi, takže vlákna zostanú celé.
- Zmienky, páčiky, nahlásenia a prílohy patria komentáru, nie subjektu, preto ho nasledujú.
- Zámok vlákna (locked\_at) je na komentári a presunie sa s ním.
- Zámok subjektu zostane, kde je: zamknutý $from zostane zamknutý — presun jeho komentárov preč je povolený — a $to sa nezamkne.
- Komentáre, ktoré $from napísal ako autor, zostanú nedotknuté; presúvajú sa len komentáre na ňom.
- updated\_at sa nemení — presun nie je úprava.

## Odmietnutia

Keď niektorá kontrola zlyhá, nič sa nepresunie, nič sa nezaznamená a žiadna udalosť sa neodošle:

- $from a $to sú ten istý subjekt — rovnaký morph typ aj kľúč, hoci ako dve inštancie —, preto sa vyhodí InvalidCommentTransferException.
- $to má zámok subjektu, preto sa vyhodí CommentsLockedException.
- Pri zapnutom comments.authorization sa na $to kontroluje existujúca ability create — create(?Model $user, ?Model $commentable) s $to ako komentovaným subjektom — a zamietnutie vyhodí UnauthorizedCommentActionException. Policy, ktorá nerozširuje CommentPolicy, nepotrebuje žiadnu novú metódu.

```php
use RoundlyConsulting\Comments\Exceptions\CommentsLockedException;
use RoundlyConsulting\Comments\Exceptions\InvalidCommentTransferException;

try {
    Comments::transfer($duplicate, $original);
} catch (InvalidCommentTransferException $e) {
    // $duplicate and $original are the same subject
} catch (CommentsLockedException $e) {
    // $original is locked
}
```

## Po presune

Odošle sa CommentsTransferred s $from, $to a $count — aj vtedy, keď sa nič nepresunulo a $count je 0 — a Comments::fake() volanie zaznamená pre assertTransferred() (pozrite Testovanie):

```php
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Comments\Events\CommentsTransferred;

Event::listen(function (CommentsTransferred $event): void {
    $event->from;   // the subject the comments left
    $event->to;     // the subject they now belong to
    $event->count;  // how many moved — 0 is possible
});
```

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