Agrega Marcadores y Favoritos a tu Aplicación Laravel con Markable

Laravel Markable es un paquete para integrar likes, bookmarks, favoritos, reacciones y marcas personalizadas en tu aplicación.

La manera básica de usarlo es añadiendo un Markable trait y los tipos de «marcas» que deseas permitir en un modelo dado. Por ejemplo, si tienes un modelo Course y deseas permitir que los usuarios den like al curso:

Ejemplo de Uso

namespace AppModels;

use IlluminateDatabaseEloquentModel;
use MaizeMarkableMarkable;
use MaizeMarkableModelsLike;

class Course extends Model
{
    use Markable;

    protected $fillable = [
        'title',
        'description',
    ];

    protected static $marks = [
        Like::class,
    ];
}

Con ese modelo en su lugar, así es como gestionas las marcas usando este paquete:

Gestionar Marcas ⚙️

use AppModelsCourse;
use MaizeMarkableModelsLike;

// Marca el curso como "liked" para el usuario dado
Like::add($course, $user);

// Desmarca el curso como "liked" para el usuario dado
Like::remove($course, $user);

// Cambia el estado de like para el usuario dado
Like::toggle($course, $user);

// Devuelve si el usuario dado le gusta o no el curso
Like::has($course, $user);

// Devuelve cuántos usuarios le gustan un curso
Like::count($course);

El modelo Like está integrado en el paquete, pero también puedes crear modelos personalizados de marcas, como Pledge, que permite a un usuario comprometerse con una donación para una causa.

Tipos de Marcas Integrados ✅

El paquete incluye varios tipos de marcas por defecto, incluyendo:

  • Bookmark
  • Favorite ⭐
  • Like ❤️
  • Reaction

Consultar Marcas

Por otro lado, si deseas ver todas las marcas (por ejemplo, likes) de un usuario para que puedan ver qué cursos les gustan:

// Todos los cursos con un like del usuario dado
Course::whereHasLike(
    auth()->user()
)->get();

// Todos los posts con una reacción 'heart' del usuario dado
Post::whereHasReaction(
    auth()->user(),
    'heart'
)->get();

Más Información

Puedes aprender más sobre este paquete, obtener instrucciones completas de instalación y ver el código fuente en GitHub.


Descubre más desde CIBERED

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario