Laravel Markable — це пакет для інтеграції оцінок "подобається", закладок, вибраного, реакцій та спеціальних позначок ваша заявка.
Основне використання — це додавання ознаки Markable
і типів "міток", які потрібно дозволити для даної моделі.Наприклад, якщо у вас є модель Курс
і ви хочете дозволити користувачам подобатися курсу:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Maize\Markable\Markable;
use Maize\Markable\Models\Like;
class Course extends Model
{
use Markable;
protected $fillable = [
'title',
'description',
];
protected static $marks = [
Like::class,
];
}
З цією моделлю ось як виглядає керування мітками за допомогою цього пакета:
use App\Models\Course;
use Maize\Markable\Models\Like;
// marks the course liked for the given user
Like::add($course, $user);
// unmarks the course liked for the given user
Like::remove($course, $user);
// toggles the course like for the given user
Like::toggle($course, $user);
// returns whether the given user likes a course or not
Like::has($course, $user);
// returns how many users like a course
Like::count($course);
Модель Like
є вбудованою в пакет, але ви також можете створювати власні моделі позначок, наприклад Pledge
, що дозволяє користувачеві зробити пожертву на причиною.
Пакет включає в себе різні типи позначок із коробки, зокрема:
- Bookmark
- Favorite
- Like
- Reaction
З іншого боку додавання оцінки "подобається" для користувача, ви можете перелічити всі оцінки "подобається" для певного користувача, щоб він міг бачити, які курси йому сподобалися:
// All course models with a like from the given user
Course::whereHasLike(
auth()->user()
)->get();
// All post models with a 'heart' reaction from the given user
Post::whereHasReaction(
auth()->user(),
'heart'
)->get();
Ви можете дізнатися більше про цей пакет, отримати повні інструкції зі встановлення та переглянути Перейти до оригіналу