Laravel Markable to pakiet do integracji polubień, zakładek, ulubionych, reakcji i niestandardowych znaków Twoja aplikacja.
Podstawowym zastosowaniem jest dodanie cechy Markable
i typów „znaków”, które chcesz zezwolić na dany model.Na przykład, jeśli masz model Kursu
i chcesz, aby użytkownicy polubili kurs:
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,
];
}
Po wdrożeniu tego modelu zarządzanie znakami za pomocą tego pakietu wygląda tak:
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);
Model Lubię
jest wbudowany w pakiet, ale można również budować własne modele znaczników, takie jak Pledge
, które pozwalają użytkownikowi złożyć datek na rzecz przyczyna.
Pakiet zawiera różne typy znaków gotowe do użycia, w tym:
- Bookmark
- Favorite
- Like
- Reaction
Po drugiej stronie dodawania polubienia dla użytkownika możesz wymienić wszystkie polubienia dla danego użytkownika, aby mogli zobaczyć, jakie kursy polubiły:
// 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();
Możesz dowiedzieć się więcej o tym pakiecie, uzyskać pełne instrukcje instalacji i wyświetlić Przejdź do oryginału