wimil / followers
laravel eloquent 的关注和被关注者
1.0
2022-02-27 16:41 UTC
Requires
- php: >=7.0
- laravel/framework: ^5.5|~6.0|~7.0|~8.0|^9.2
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/phpunit: ~8.0
This package is auto-updated.
Last update: 2024-09-27 21:58:13 UTC
README
laravel 的关注系统,一个模型可以关注另一个模型。
安装
需求
- PHP 7.0+
- Laravel 5.5+
您可以使用 composer 安装此包
$ composer require wimil/followers
然后向 config/app.php
添加服务提供者
Wimil\Followers\Provider::class
发布迁移文件
$ php artisan vendor:publish --provider="Wimil\Followers\Provider" --tag="migrations"
如果需要修改默认配置,可以选择发布配置文件(可选)
$ php artisan vendor:publish --provider="Wimil\Followers\Provider" --tag="config"
并创建表
$ php artisan migrate
最后,在可关注和可被关注的模型中添加特性函数
use Wimil\Followers\Traits\Followable; class User extends Model { use Followable; }
示例
$bob = User::find(1); $alin = User::find(2); $bob->follow($alin); $alin->follow($bob); $bob->follow([2, 'App\User']); $alin->follow([1, 'App\User']); $bob->toggleFollow($alin); $alis->toggleFollow($bob); $bob->toggleFollow([2, 'App\User']); $alin->toggleFollow([1, 'App\User']);
用法
可关注
use Wimil\Follow\Traits\CanFollow; class User extends Model { use CanFollow; }
示例 所有可用的 API 列表如下。
$user = User::find(1); $page = Page::find(1); $user->follow($page); $user->toggleFollow($page); $user->unfollow($page); $user->isFollowing($page);
可被关注
use Wimil\Follow\Traits\CanBeFollowed; class Page extends Model { use CanBeFollowed; }
示例 所有可用的 API 列表如下。
$user = User::find(1); $page = Page::find(1); $page->addFollower($user); $page->deleteFollower($user); $page->toggleFollower($user); $page->isFollowedBy($user);
如果您想创建自己的关注者模型,请创建一个新的模型并扩展我的关注者模型。
use Wimil\Followers\Model\Follower as BaseFollower; class Follower extends BaseFollower { // ... }
并且别忘了在 config/followers.php 文件中更新模型名称。
外观
您还可以使用外观别名,必须在 config/app.php 中包含外观别名。
'Follow' => Wimil\Followers\Facades\Follow::class;
用法
$bob = User::find(1); $alin = User::find(2); Follow::attach($bob, $alin); Follow::attach($alin, $bob); Follow::attach([1, 'App\User'], [2, 'App\User']); Follow::attach([2, 'App\User'], [1, 'App\User']); Follow::detach($bob, $alin); Follow::toggle($bob, $alin); Follow::exists($bob, $alin);
许可证
MIT
由 wimil 创建