---
title: "Zmena reakcie — Likes for Laravel | Roundly"
description: "react() drží jednu aktívnu reakciu na aktéra a položku, mení ju na mieste a spúšťa len ReactionChanged."
url: https://roundly-consulting.com/sk/open-source/navody/likes-for-laravel/zmena-reakcie
language: sk
---

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

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

# Zmena reakcie

react() drží jednu aktívnu reakciu na aktéra a cieľový model: reakcia s novým typom prepne existujúcu reakciu namiesto pridania druhej.

```php
Likes::actor($user)->as('love')->react($post); // facade
$user->react($post, 'love');                   // trait
$user->switchReaction($post, 'wow');           // readable alias
```

- Žiadna predchádzajúca reakcia — správa sa ako like() a spustí Liked.
- Rovnaký typ — nič sa nezmení, vráti true, žiadna udalosť.
- Iný typ — prepne reakciu a spustí len ReactionChanged(from, to), nikdy Liked ani Unliked, takže analytika aj notifikácie vidia čistý prechod. Záznam sa zmení na mieste, alebo — ak aktér nový typ už predtým použil — sa obnoví odobratý záznam tohto typu a starý sa odoberie.
- Len odobraté reakcie — obnoví sa záznam požadovaného typu (alebo najnovší odobratý záznam prepnutý na požadovaný typ) a spustí sa Liked.

## Krok za krokom

```php
$user->react($post, 'like');   // no prior reaction: creates it, fires Liked
$user->react($post, 'like');   // same type: no-op, returns true, no event
$user->react($post, 'love');   // switches the reaction, fires ReactionChanged('like', 'love')
$user->unlike($post, 'love');  // removes it, fires Unliked
```

Ak chcete, aby mal aktér viac súčasných reakcií, naďalej používajte like('love') + like('wow'); pre bežný prípad jednej reakcie použite react(). Ak má aktér viac reakcií, react() ich zlúči do jednej: požadovaný typ zostane (alebo sa naň prepne najnovšia reakcia a spustí ReactionChanged) a každá ďalšia aktívna reakcia sa odoberie so spustením Unliked. Záznamy sa čítajú aj prepisujú pod zámkom riadkov v jednej transakcii a udalosti sa spustia až po jej potvrdení, takže dve súbežné volania react() nikdy nenahlásia tú istú zmenu.

## 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/likes-for-laravel.md)
