摘要:废话不多说,下面我简单介绍一下两个包的用法吧。还有的是这里使用了,如何去理解以及更好地使用最后,当然是要感谢超哥。经讨论更名为更名为更名为更名为
本文主要介绍两个包:
Laravel - Follow : https://github.com/overtrue/laravel-follow
Laravel - Vote : https://github.com/jcc/laravel-vote
你会疑惑这两个包有什么用的呢?当然如标题所说,简化你关注和点赞功能,Laravel - Follow 用于关注功能,Laravel - Vote 用于点赞功能。
如果你看了代码,你会发现两个包的代码基本上是一致的,当要注意,两个包的应用场景是不一样的。
Laravel - Follow 之前的版本只支持用户关注,当然最近也做了一些改造工作,实现了多种情景下的应用,如:专栏关注、用户关注等情景。
当然,Laravel - Vote 也支持多种情景的应用,如:文章点赞、评论回复点赞等。废话不多说,下面我简单介绍一下两个包的用法吧。
安装Laravel Follow
使用 composer 安装包:
composer require overtrue/laravel-follow -vvv
添加服务提供者到 config/app.php 下:
OvertrueLaravelFollowFollowServiceProvider::class
发布迁移文件:
php artisan vendor:publish --provider="OvertrueLaravelFollowFollowServiceProvider" --tag="migrations"
Laravel Vote
使用 composer 安装包:
composer require jcc/laravel-vote -vvv
添加服务提供者到 config/app.php 下:
JccLaravelVoteVoteServiceProvider::class
发布迁移文件:
php artisan vendor:publish --provider="JccLaravelVoteVoteServiceProvider" --tag="migrations"用法
当然用法也是非常的简单,你无需顾虑它们间的关联关系。
Laravel Follow应用场景:用户关注用户
首先,在 User 模型中引入 CanFollow 以及 CanBeFollowed :
use OvertrueLaravelFollowCanFollow; use OvertrueLaravelFollowCanBeFollowed; class User extends Model { use CanFollow, CanBeFollowed; }
关注用户:
$user->follow(1); // or $user->follow([1,2,3,4]); // or $target = User::find(2); $user->follow($target);
取消关注用户:
$user->unfollow(1); // or $user->unfollow([1,2,3,4]); // or $target = User::find(2); $user->unfollow($target);
获取用户的关注者:
$user->followers();
获取用户关注的用户:
$user->followings();
判断用户是否关注了:
$user->isFollowing(1); // or $target = User::find(1); $user->isFollowing($target);
判断用户是否被关注了:
$user->isFollowedBy(1);Laravel Vote
应用场景:用户点赞文章
只需在 User 模型中引入 Vote ,在 Post 模型引入 CanBeVoted :
User.php
use JccLaravelVoteVote; class User extends Model { use Vote; }
Post.php
use JccLaravelVoteCanBeVoted; class Post extends Model { use CanBeVoted; }
针对 User.php 的操作
用户点赞文章:
$post = Post::find(1); $user->upVote($post);
用户取消点赞文章:
$post = Post::find(1); $user->cancelVote($post);
获取用户已点赞的记录:
$user->votedItems();
判断是否已点赞:
$post = Post::find(1); $user->hasVoted($post);
针对文章的操作
获取所有点赞的用户:
$post->voters();
判断用户是否有点赞:
$post->isVotedBy(1);
至此,你可以愉快使用这两个包,当然,你需要按照你所需的应用场景使用,而不是乱用(Follow 当成 Vote 使用等)。还有的是这里使用了 Trait ,如何去理解以及更好地使用 Trait — By Overtrue
最后,当然是要感谢超哥 overtrue 。
经讨论
Laravel Follow
FollowTrait 更名为 CanFollow
FollowerTrait 更名为 CanBeFollowedLaravel Vote
VoteTrait 更名为 Vote
VoterTrait 更名为 CanBeVoted
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/22692.html
摘要:介绍有关用户之间的相互关注这样的应用场景还是很常见的每个平台都会有这样类似的需求就比如和知乎当然还有最熟悉的每个人可以有关注者和粉丝建立模型表这里我们去建立一个中间表可以想象得到的是这张表里包含了两个用户的我们可以去创建一个创建完我们的表 介绍 有关用户之间的相互关注这样的应用场景还是很常见的 每个平台都会有这样类似的需求 就比如Segmentfault和知乎 当然还有最熟悉的Git...
摘要:优雅地玩知乎简介是什么是一个可以让你以一种优雅的形式调用知乎数据的包怎么安装或者更新使用引用后面的是别称的意思便于输入配置用户配置脚本使用的一共有两种方法什么都不管脚本会默认读取或者的如果你是其他类的浏览器你可以在的自定义文件的路径在禁用 ZhihuVAPI:优雅地玩知乎 简介 ZhihuVAPI是什么? ZhihuVAPI 是一个可以让你以一种优雅的形式调用知乎数据的 Python ...
摘要:能跑应用就不错了,周六想在服务器用试试部署开发环境。官网内测申请方式提供个人企业联系方式及认证信息实名企业营业执照照片或扫描件及申请说明,发送邮件至即可获得内测资格,申请从速。 前段时间不知道抽上面疯,买了一台低配的 ECS,配置就是 1m1u。能跑应用就不错了,周六想在服务器用 Laradock 试试部署开发环境。 安装 Docker 因为我的系统是 CentOS 7 并且对比 Do...
阅读 978·2021-11-04 16:08
阅读 2958·2021-09-13 10:37
阅读 492·2019-08-30 15:56
阅读 1926·2019-08-30 15:55
阅读 2225·2019-08-30 15:53
阅读 2070·2019-08-30 13:13
阅读 2908·2019-08-30 12:51
阅读 1532·2019-08-29 16:06