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);
Модель Нравится
встроена в пакет, но вы также можете создавать собственные модели отметок, такие как 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();
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть Перейти к оригиналу