Skip to content

puzzle9/laravel-user-blockable

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel User Block System

This package helps you to add user block system to your project.

  • So simply and easy.
  • Use "ON DELETE CASCADE" in block relationships table.

Caution

  • Support Laravel 8.x~
  • Required php >=7.0

Installation

First, pull in the package through Composer.

Run composer require puzzle9/laravel-user-blockable

Publish the config file. (blockable.php)

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

Finally, use Blockable trait in User model.

use Hareku\LaravelBlockable\Traits\Blockable;

class User extends Model
{
    use Blockable;
}

Usage

Block a user or users

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

Add blockers

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

Unblock a user or users

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

Get blocker users / blocked by users

// 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();

Check if it is blocking

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

Check if it is being blocked

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

Check if it is mutual block

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

Get blocker/blocked IDs

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

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

Reject user ids

$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]

License

MIT

Author

hareku (hareku908@gmail.com)

Fork

barisdemirhan (barisdemirhn@gmail.com)

其他

讲真 目前我对这函数 按照这个字关系 理解不清楚

就是类似于

a拉黑了b b被a拉黑了

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%