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:
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:
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.
El paquete incluye varios tipos de marcas por defecto, incluyendo:
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();
Puedes aprender más sobre este paquete, obtener instrucciones completas de instalación y ver el código fuente en GitHub.
La biografía más vendida del cofundador de Apple, Steve Jobs; escrita por uno de los…
Hubo un tiempo en el que la “seguridad en el hogar” significaba confiar en un…
Elon Musk vuelve a romper todos los esquemas. Los accionistas de Tesla acaban de aprobar…
Los fans de Grand Theft Auto tendrán que esperar un poco más para volver a…
Five Nights at Freddy’s: Into the Pit nos sumerge en un misterioso mundo donde lo…
Adéntrate en el oscuro y retorcido mundo de Bendy and the Ink Machine, donde los…