Laravel Markable:赋予应用标记能力的利器

Laravel Markable:赋予应用标记能力的利器

去发现同类优质开源项目:https://gitcode.com/

Laravel Markable 社交卡片

Laravel Markable 是一款专为 Laravel 框架设计的扩展包,它为你提供了一种简单的方法来添加「标记」功能,如点赞(likes)、收藏(bookmarks)和最爱(favorites)等。

安装与配置

通过 Composer 即可轻松安装:

composer require maize-tech/laravel-markable

然后发布并运行迁移文件:

php artisan vendor:publish --tag="markable-migration-bookmark"
php artisan vendor:publish --tag="markable-migration-favorite"
php artisan vendor:publish --tag="markable-migration-like"
php artisan vendor:publish --tag="markable-migration-reaction"

php artisan migrate

如果你需要自定义配置,可以发布配置文件:

php artisan vendor:publish --tag="markable-config"

使用方法

基础操作

要使用这个包,请在你想添加标记功能的模型上添加 Maize\Markable\Markable 特质,并在 $marks 数组中指定你的标记类。例如,实现一个名为 Like 的标记:

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];
}

现在你可以执行如下的操作:

  • Like::add($course, $user):给课程添加一个赞。
  • Like::remove($course, $user):取消用户的赞。
  • Like::toggle($course, $user):切换用户对课程的赞状态。
  • Like::has($course, $user):检查用户是否已点赞。
  • Like::count($course):获取课程的点赞数。

自定义元数据与自定义标记模型

若需添加自定义元数据,可以在添加或切换标记时传递参数:

Like::add($course, $user, ['topic' => $course->topic]);

创建自定义标记模型也相当简单,只需要创建对应的迁移文件和继承 Mark 类的模型。然后在模型中定义 markableRelationName 方法即可。

标记值管理

通过配置文件中的 allowed_values 可以限制特定标记类型的值,比如用于实现不同表情反应。你也可以使用通配符允许任何值。

应用场景

Laravel Markable 在许多地方都大有用途。它可以应用于:

  • 社区论坛:让用户能够点赞帖子。
  • 新闻网站:允许用户收藏感兴趣的文章。
  • 在线教育平台:用户可以标记喜欢的课程。
  • 内容分享平台:用户可以为分享的内容添加各种反应。

项目特点

  • 易于集成:只需添加特质并配置,快速启用标记功能。
  • 高度定制化:支持自定义标记模型、自定义元数据,以及值限制。
  • 性能优化:每个标记类型都有单独的数据库表,提高查询效率。
  • 灵活的查询:可以基于用户或标记值进行筛选和统计。

结论

Laravel Markable 提供了一个强大且易用的方式来增强你的 Laravel 应用的互动性。无论是简单的点赞功能还是复杂的情绪反应系统,都能轻松应对。立即尝试,让你的应用更富生机与活力!

去发现同类优质开源项目:https://gitcode.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芮奕滢Kirby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值