puzzle9/laravel-user-blockable

Laravel用户锁定系统

v1.1.0 2021-03-31 06:21 UTC

This package is auto-updated.

Last update: 2024-09-29 06:25:43 UTC


README

此包可以帮助您将用户锁定系统添加到项目中。

  • 非常简单。
  • 在锁定关系表中使用 "ON DELETE CASCADE"。

注意

  • 支持Laravel 8.x~
  • 需要php >=7.0

安装

首先,通过Composer引入此包。

运行composer require puzzle9/laravel-user-blockable

发布配置文件。(blockable.php)

$ php artisan vendor:publish --provider="Hareku\LaravelBlockable\BlockableServiceProvider"

最后,在User模型中使用Blockable特质。

use Hareku\LaravelBlockable\Traits\Blockable;

class User extends Model
{
    use Blockable;
}

用法

锁定用户或多个用户

$user->block(1);
$user->block([1,2,3,4]);

添加阻止者

$user->addBlockers(1);
$user->addBlockers([1,2,3,4]);

解锁用户或多个用户

$user->unblock(1);
$user->unblock([1,2,3,4]);

获取阻止者用户/被阻止的用户

// blocker users
$user->blockerUsers()->get(); // Get blocker user models.
$user->blockerRelationships()->get(); // Get blocker relationship models.

// blocked by users
$user->blockingUsers()->get();
$user->blockingRelationships()->get();

检查是否被锁定

$user->isBlocking(1);
$user->isBlocking([1,2,3,4]);

检查是否被阻止

$user->isBlockedBy(1);
$user->isBlockedBy([1,2,3,4]);

检查是否是相互锁定

$user->isMutualBlock(1);
$user->isMutualBlock([1,2,3,4]);

获取阻止者/被阻止者的ID

$user->block([1,2,3]);

$user->blockerIds(); // [1,2,3]
$user->blockingIds();

拒绝用户ID

$user->blockerUsers()->pluck('id')->all(); // [1,2,3]
$user->rejectNotBlocker([1,2,3,4,5]); // [1,2,3]
$user->block([1,2,3]);
$user->rejectNotBlocking([1,2,3,4,5]); // [1,2,3]

许可证

MIT

作者

hareku (hareku908@gmail.com)

分支

barisdemirhan (barisdemirhn@gmail.com)

其他

说实话,我现在对这函数按照这个字关系理解不清楚。

就是类似于

a拉黑了b,b被a拉黑了。