NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Likes for Laravel

Stav a počty

Existenciu páčika overíte cez fasádu a jeden cieľový model čítate cez handle Likes::for():

use RoundlyConsulting\Likes\Facades\Likes;

Likes::has($post);                        // bool — as the resolved actor
Likes::actor($user)->has($post);          // bool — as any actor
Likes::for($post)->likedBy($user);        // bool — default reaction type unless given
Likes::for($post)->likedBy($user, 'love');

Likes::for($post)->count();               // int — all reactions (uses an eager-loaded likes_count)
Likes::for($post)->count('love');         // int — one type (uses an eager-loaded likes_love_count)

Skratka cez trait

Tie isté čítania z oboch modelov — hasLiked() a isLikedBy() idú cez Likes::for()->likedBy(), likesCount() cez Likes::for()->count():

$post->hasBeenLikedBy($user);  // bool
$post->isLikedBy($user);       // bool — readable alias of hasBeenLikedBy()
$user->hasLiked($post);        // bool

$post->likesCount();           // int — all reactions; uses an eager-loaded likes_count when present

Bez typu kontroly hľadajú predvolenú reakciu. Na overenie konkrétnej reakcie odovzdajte typ:

$post->isLikedBy($user, 'love');
$user->hasLiked($post, 'love');
$post->likesCount('love');     // int — one type; uses an eager-loaded likes_love_count when present

Ako prebieha počítanie

  • Bez typu spočíta všetky aktívne reakcie na modeli.
  • Ak je prítomný prednačítaný atribút likes_count (withLikesCount() alebo loadCount('likes')), použije ho, takže zoznamy nespúšťajú jeden dopyt na riadok.
  • S typom použije vlastný prednačítaný atribút daného typu — likes_love_count z withLikesCount('love') —, inak spustí živý počet pre daný typ. Celkový likes_count na počet s typom nikdy neodpovedá.
$posts = Post::withLikesCount()->withLikesCount('love')->get();  // both attributes on one row

foreach ($posts as $post) {
    Likes::for($post)->count();       // reads likes_count — no extra query (so does $post->likesCount())
    Likes::for($post)->count('love'); // reads likes_love_count
}

$post->loadCount('likes');     // or load the count onto a single model

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.