Páčiky a poradie
Reakcie na komentáre zabezpečuje Likes for Laravel: model Comment implementuje Likeable, takže mu páčik či upvote môže dať ktorýkoľvek model. Aktér sa vždy odovzdáva explicitne — balík nikdy neberie aktuálneho používateľa z auth guardu:
use RoundlyConsulting\Likes\Facades\Likes;
Likes::actor($user)->like($comment);
Likes::actor($user)->unlike($comment);
Likes::actor($user)->toggle($comment); // bool: now liked?
$comment->likesCount(); // live or eager count
$comment->isLikedBy($user); // bool
$comment->likeState($viewer); // ['count' => 2, 'viewer_state' => ['liked' => true, 'reaction' => 'like'], 'breakdown' => ['like' => 2]]Typované reakcie
Okrem obyčajného páčika drží react() jednu aktívnu reakciu na aktéra a pri zmene ju prepne na mieste. Typy reakcií musia byť uvedené v allowliste likes.reactions:
// config/likes.php → 'reactions' => ['like', 'love'],
Likes::actor($user)->as('love')->react($comment); // one active reaction, switched in place
$comment->likesCount('love'); // count for one reaction type
$comment->isLikedBy($user, 'love'); // boolPoradie a stav diváka
Zoraďte a načítajte celé vlákno cez builder CommentQuery — najobľúbenejšie, trendové a stav páčikov pre diváka v jedinom dotaze (bez N+1):
Comments::for($post)->orderByLikesDesc()->get(); // "top comments"
Comments::for($post)->orderByTrending()->get(); // recency-weighted "hot"
Comments::for($post)->withLikedState($viewer)->get(); // each row: ->is_liked, ->liked_reactionlikeState() vracia kompaktný payload pre API a Blade — celkový počet, stav diváka a rozpis podľa reakcií. Diváka odovzdajte explicitne; bez neho sa vykreslí stav hosťa.
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 kryptomienOdoslaní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.