资讯专栏INFORMATION COLUMN

简化你的关注与点赞 - Laravel Follow & Vote

CodeSheep / 2772人阅读

摘要:废话不多说,下面我简单介绍一下两个包的用法吧。还有的是这里使用了,如何去理解以及更好地使用最后,当然是要感谢超哥。经讨论更名为更名为更名为更名为

本文主要介绍两个包:

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 更名为 CanBeFollowed

Laravel Vote
VoteTrait 更名为 Vote
VoterTrait 更名为 CanBeVoted

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22692.html

相关文章

  • Laravel 用户之间关注

    摘要:介绍有关用户之间的相互关注这样的应用场景还是很常见的每个平台都会有这样类似的需求就比如和知乎当然还有最熟悉的每个人可以有关注者和粉丝建立模型表这里我们去建立一个中间表可以想象得到的是这张表里包含了两个用户的我们可以去创建一个创建完我们的表 介绍 有关用户之间的相互关注这样的应用场景还是很常见的 每个平台都会有这样类似的需求 就比如Segmentfault和知乎 当然还有最熟悉的Git...

    Aceyclee 评论0 收藏0
  • ZhihuVAPI:用Python优雅地玩知乎

    摘要:优雅地玩知乎简介是什么是一个可以让你以一种优雅的形式调用知乎数据的包怎么安装或者更新使用引用后面的是别称的意思便于输入配置用户配置脚本使用的一共有两种方法什么都不管脚本会默认读取或者的如果你是其他类的浏览器你可以在的自定义文件的路径在禁用 ZhihuVAPI:优雅地玩知乎 简介 ZhihuVAPI是什么? ZhihuVAPI 是一个可以让你以一种优雅的形式调用知乎数据的 Python ...

    ccj659 评论0 收藏0
  • 利用 Docker 包 Laradock 服务器部署 Laravel & ThinkSNS+

    摘要:能跑应用就不错了,周六想在服务器用试试部署开发环境。官网内测申请方式提供个人企业联系方式及认证信息实名企业营业执照照片或扫描件及申请说明,发送邮件至即可获得内测资格,申请从速。 前段时间不知道抽上面疯,买了一台低配的 ECS,配置就是 1m1u。能跑应用就不错了,周六想在服务器用 Laradock 试试部署开发环境。 安装 Docker 因为我的系统是 CentOS 7 并且对比 Do...

    idisfkj 评论0 收藏0

发表评论

0条评论

CodeSheep

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<