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:
// 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:
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:
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:
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:
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 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.