Všetky balíky
Likes for Laravel
Scopy dopytov
HasLikes pridáva scopy dopytov pre zoznamy popularity a filtre:
Post::orderByLikesDesc()->limit(10)->get(); // most-liked first (no N+1)
Post::orderByLikes()->get(); // least-liked first
Post::whereLikedBy($user)->get(); // posts the user liked
Post::whereNotLikedBy($user)->get(); // posts the user has not liked
Post::withLikesCount()->get(); // hydrate a likes_count attributeKaždý scope prijíma ako posledný argument voliteľný typ reakcie a skladá sa so zvyškom dopytu. Počet s typom sa uloží do vlastného atribútu — likes_{type}_count —, takže sa nikdy nezamení s celkovým počtom všetkých reakcií:
Post::orderByLikesDesc('love')->limit(10)->get(); // most-loved first
Post::whereLikedBy($user, 'love')->get(); // posts the user loved
Post::withLikesCount('love')->get(); // hydrate likes_love_count
Post::query()
->whereNotLikedBy($user)
->orderByLikesDesc()
->paginate(20);Ako sa scopy správajú
- Bez typu scopy zodpovedajú akejkoľvek reakcii — whereLikedBy($user) nájde príspevky, na ktoré používateľ reagoval akýmkoľvek spôsobom. Kontroly na inštancii (isLikedBy(), hasLiked()) naopak predvolene používajú default_reaction.
- orderByLikes() a orderByLikesDesc() pri zoraďovaní načítajú likes_count (pri zoradení podľa typu likes_{type}_count), takže každý riadok nesie svoj počet bez ďalšieho dopytu. withLikesCount() a withLikesCount('love') môžete v jednom dopyte kombinovať.
- Odobraté páčiky (soft delete) sa nikdy nezapočítavajú.
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.