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.

Pablo, Técnico en Sistemas Informáticos y Redes

Compartir
Publicado por
Pablo, Técnico en Sistemas Informáticos y Redes
Etiquetas: FrameworkLaravelPHP

Entradas recientes

La biografía de Steve Jobs escrita por el biógrafo Walter Isaacson

La biografía más vendida del cofundador de Apple, Steve Jobs; escrita por uno de los…

2 días hace

Cómo la Inteligencia Artificial está Revolucionando los Sistemas de Seguridad en el Hogar

Hubo un tiempo en el que la “seguridad en el hogar” significaba confiar en un…

2 días hace

Elon Musk se asegura una compensación de 1 billón de dólares con Tesla

Elon Musk vuelve a romper todos los esquemas. Los accionistas de Tesla acaban de aprobar…

2 días hace

GTA 6 se retrasa hasta finales de 2026

Los fans de Grand Theft Auto tendrán que esperar un poco más para volver a…

5 días hace

Juego de terror GRATIS este Halloween, sobrevive en Five Nights at Freddy’s Into the Pit

Five Nights at Freddy’s: Into the Pit nos sumerge en un misterioso mundo donde lo…

2 semanas hace

Juego de terror de dibujos animados, Bendy and the Ink Machine GRATIS hasta el 6 de noviembre

Adéntrate en el oscuro y retorcido mundo de Bendy and the Ink Machine, donde los…

2 semanas hace