使用 Laravel Bans 包禁用 Eloquent 模型
Laravel Bans 是一个用于禁用 Eloquent 模型的包。使用该包,你可以迅速让一个模型"bannable".
用例可以超越用户模型; 你可以将 ban 的概念用到任何 Eloquent 模型中。 主要特性包括:
- 一个模型可以有多个
 - 删掉的bans以软删除的方式保存在历史记录里。
 - 大部分逻辑由BanService处理。
 - 有中间件保护被禁用的用户路由权限。
 - 用例不限于用户模型,任何 Eloquent 模型都可以被禁用。
 - 模型 ban 及 unban 的事件触发
 - 用于与 Laravel Eloquent 模型的配合使用
 - 有 Laravel Nova 支持.
 - 使用 contract 使之保持高定制能力
 - 使用 trait, 使功能开箱即用
 
优雅的 API 使禁用模型易用:
 $user->ban();
  
 $user->ban([
     'comment' => 'Enjoy your ban!',
 ]);
  
 // A ban that has a ban expiry date
 $user->ban([
     'expired_at' => '+1 month',
]);
 // Remove a ban
$user->unban();
// Boolean checks
$user->isBanned();
$user->isNotBanned();
$ban->isTemporary();该包同时也提供了中间件、事件、查询范围设置(scope) 并自动将查询翻译应用到模型中。
更多详情,请查阅其 Github 仓库