簡化你的關注與點贊 - Laravel Follow & Vote

Laravel Follow & Vote

本文主要介紹兩個包:php

Laravel - Follow : https://github.com/overtrue/laravel-followhtml

Laravel - Vote : https://github.com/jcc/laravel-votelaravel

你會疑惑這兩個包有什麼用的呢?固然如標題所說,簡化你關注和點贊功能,Laravel - Follow 用於關注功能,Laravel - Vote 用於點贊功能。git

若是你看了代碼,你會發現兩個包的代碼基本上是一致的,當要注意,兩個包的應用場景是不同的。github

Laravel - Follow 以前的版本只支持用戶關注,固然最近也作了一些改造工做,實現了多種情景下的應用,如:專欄關注、用戶關注等情景。bash

固然,Laravel - Vote 也支持多種情景的應用,如:文章點贊、評論回覆點贊等。廢話很少說,下面我簡單介紹一下兩個包的用法吧。app

安裝

Laravel Followcomposer

使用 composer 安裝包:ide

composer require overtrue/laravel-follow -vvv

添加服務提供者到 config/app.php 下:post

Overtrue\LaravelFollow\FollowServiceProvider::class

發佈遷移文件:

php artisan vendor:publish --provider="Overtrue\LaravelFollow\FollowServiceProvider" --tag="migrations"

Laravel Vote

使用 composer 安裝包:

composer require jcc/laravel-vote -vvv

添加服務提供者到 config/app.php 下:

Jcc\LaravelVote\VoteServiceProvider::class

發佈遷移文件:

php artisan vendor:publish --provider="Jcc\LaravelVote\VoteServiceProvider" --tag="migrations"

用法

固然用法也是很是的簡單,你無需顧慮它們間的關聯關係。

Laravel Follow

應用場景:用戶關注用戶

首先,在 User 模型中引入 CanFollow 以及 CanBeFollowed

use Overtrue\LaravelFollow\CanFollow;
use Overtrue\LaravelFollow\CanBeFollowed;

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 Jcc\LaravelVote\Vote;

class User extends Model
{
    use Vote;
}

Post.php

use Jcc\LaravelVote\CanBeVoted;

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 VoteVoteTrait 改名爲 VoteVoterTrait 改名爲 CanBeVoted

相關文章
相關標籤/搜索