使用 Laravel Love 向模型添加社交反应
发布日期:作者: Paul Redmond
大约一年前,我们在 Laravel 新闻中介绍了 Laravel Love,并且发生了很多变化——Laravel Love 已经重新设计,现在拥有更先进的功能,我们认为值得再次看看这个包
Laravel Love 是应用程序中情感的一部分。它让人们表达他们对内容的感受。让任何模型在几分钟内就能产生反应!
在现代应用程序中,有许多不同的实现方式来对内容做出反应
- Github 反应
- Facebook 反应
- YouTube 点赞
- Slack 反应
- Reddit 投票
- Medium 鼓掌
- Disqus 反应
此包考虑了所有上述用例,并且从 v7 开始,现在还包括一个 加权反应系统。
更新后的包的主要重点是围绕两个模型:Reacterable
模型和 Reactable
模型。Reacterable
模型是一个可以充当 Reacter
的模型,例如 User
、Person
或 Organization
。Reactable
模型是一个可以充当 Reactant
的模型,例如 Comment
、Post
或 User
。
以下是文档中 Reacterable
模型可能的样子示例
<?php namespace App; use Cog\Contracts\Love\Reacterable\Models\Reacterable as ReacterableContract;use Cog\Laravel\Love\Reacterable\Models\Traits\Reacterable;use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements ReacterableContract{ use Reacterable;}
以下是对模型进行反应的代码示例
$reacterFacade = $user->viaLoveReacter();$reacterFacade->reactTo($comment, 'Like'); // Example using weight$reacter->reactTo($reactant, 'Like', 4.0); // Remove reaction$reacterFacade->unreactTo($comment, 'Like'); // Has the model reacted?$reacterFacade->hasReactedTo($comment); // Get reactions$reactions = $reacterFacade->getReactions();
Laravel Love v8 提供了广泛的文档,您可以在 laravel-love.readme.io/docs 查看。您可以在 GitHub 上查看源代码:cybercog/laravel-love.