NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
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 attribute

Kaž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 kryptomien

Odoslaní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.