Dopytovanie recenzií
Recenzie jedného predmetu alebo všetky recenzie vypíšete cez fasádu — oba dopyty rešpektujú vymenený reviews.model:
use RoundlyConsulting\Reviews\Facades\Reviews;
Reviews::for($restaurant)->query()->approved()->mostHelpful()->paginate(); // one subject, top-level only
Reviews::query()->pending()->latestFirst()->paginate(); // every subjectScopes
Model Review obsahuje výstižné scopes a dajú sa reťaziť na oboch dopytoch z fasády. Sú v traite HasReviewScopes, takže ich zachová aj vlastný model recenzie:
use RoundlyConsulting\Reviews\Models\Review;
Review::query()->approved()->latestFirst()->get();
Review::query()->latestFirst()->get(); // newest approval first, never-approved last
Review::query()->pending()->get();
Review::query()->rejected()->get();
Review::query()->rated()->get(); // has a rating
Review::query()->withRatingOf(5)->get();
Review::query()->minRating(4)->get();
Review::query()->authoredBy($user)->get();
Review::query()->for($restaurant)->get();
Review::query()->verified()->get();
Review::query()->unverified()->get();
Review::query()->topLevel()->get(); // excludes owner responses
Review::query()->responses()->get(); // only owner responses
Review::query()->mostHelpful()->get(); // by net helpful score| Scope | Účinok |
|---|---|
approved() / pending() / rejected() | Filtruje podľa stavu moderovania. |
rated() | Len recenzie s hodnotením. |
withRatingOf(int $rating) | Presné hodnotenie. |
minRating(int $rating) | Hodnotenie väčšie alebo rovné zadanej hodnote. |
authoredBy(Model $author) | Napísané jedným autorom. |
for(Model $reviewable) | O jednom predmete. |
verified() / unverified() | Filtruje podľa príznaku overenia. |
topLevel() / responses() | Vylúči odpovede vlastníka alebo vráti len ne. |
latestFirst() | Najnovšie schválenie prvé — nikdy neschválené recenzie na každej databáze na konci — potom podľa created_at. |
mostHelpful() | Zoradí podľa helpful_count − unhelpful_count, potom od najnovších. |
Skladanie scopes
Scopes sa dajú reťaziť na vzťahoch z HasReviews aj na Review::query():
// A product page: verified 4–5 star reviews, most helpful first, with replies.
$reviews = $restaurant->approvedReviews()
->verified()
->minRating(4)
->mostHelpful()
->with('responses')
->paginate(10);Vyhľadávanie podľa autora
CanReview odpovie na otázku „hodnotil už tento používateľ toto?“ bez písania dopytu:
$user->reviewsAuthored; // MorphMany (reviews and owner responses)
$user->hasReviewed($restaurant); // bool
$user->reviewFor($restaurant); // ?ReviewObe metódy berú do úvahy každú nezmazanú recenziu, ktorú model k danému predmetu napísal, bez ohľadu na stav — no len recenzie: odpoveď vlastníka, ktorú používateľ k predmetu napísal, sa za hodnotenie nepovažuje a one_per_author nespustí. Samotná relácia reviewsAuthored zahŕňa recenzie aj odpovede vlastníka.
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.