使用 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 仓库