---
title: "Typované reakcie — Likes for Laravel | Roundly"
description: "Zmeňte obyčajné páčiky na typované reakcie — love, wow, laugh alebo vlastnú sadu — strážené povoleným zoznamom v konfigurácii."
url: https://roundly-consulting.com/sk/open-source/navody/likes-for-laravel/typovane-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)

# Typované reakcie

Predvolene je nakonfigurovaná jediná implicitná reakcia like, takže balík sa správa ako obyčajné páčiky. Typované reakcie zapnete pridaním ďalších typov do config/likes.php:

```php
// config/likes.php
'reactions' => ['like', 'love', 'wow', 'laugh'],
'default_reaction' => 'like',
```

Potom typ zvolíte cez as() na fasáde alebo ho odovzdáte ľubovoľnej operácii traitu, kontrole, počtu či scopu:

```php
Likes::as('love')->like($post);
Likes::for($post)->likedBy($user, 'love');
Likes::for($post)->count('love');
Post::orderByLikesDesc('love')->get();

$user->like($post, 'love');        // the trait shorthand
$post->isLikedBy($user, 'love');
```

## Viac reakcií od jedného aktéra

like() umožňuje, aby typované reakcie existovali súčasne — jeden záznam na aktéra, cieľový model a typ:

```php
Likes::actor($user)->as('love')->like($post);
Likes::actor($user)->as('wow')->like($post);     // both reactions now co-exist
Likes::actor($user)->as('wow')->unlike($post);   // removes only the "wow"
```

Ak má mať aktér na položke práve jednu reakciu, použite namiesto toho react() (pozri Zmena reakcie).

## Povolený zoznam

Typ mimo reactions vyhodí InvalidReactionTypeException — a to isté platí pre každé volanie bez typu, ak default\_reaction v zozname chýba:

```php
use RoundlyConsulting\Likes\Exceptions\InvalidReactionTypeException;
use RoundlyConsulting\Likes\Facades\Likes;

try {
    Likes::actor($user)->as('angry')->like($post);
} catch (InvalidReactionTypeException $e) {
    // The reaction type [angry] is not allowed. Allowed types: [like, love, wow, laugh].
}
```

Vstup od používateľa overte proti tomu istému zoznamu ešte predtým, než sa dostane k balíku:

```php
use Illuminate\Validation\Rule;

$data = $request->validate([
    'reaction' => ['required', 'string', Rule::in(config('likes.reactions'))],
]);

Likes::actor($request->user())->as($data['reaction'])->react($post);
```

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