Laravel Ban — это пакет, который упрощает блокировку и запрет моделей Eloquent. Используя этот пакет, вы можете сделать модель «банируемой» за считанные минуты.
Вариант использования этого пакета выходит за рамки User
модели; вы можете добавить концепцию запрета в любую модель Eloquent. К основным особенностям этого пакета можно отнести:
- У модели может быть много запретов.
- Удалены блокировки, хранящиеся в истории в виде обратимо удаленных записей.
- Большая часть логики обрабатывается BanService.
- Имеет промежуточное программное обеспечение для предотвращения запрещенного доступа пользователей к маршруту.
- Вариант использования не ограничивается пользовательской моделью, любая модель Eloquent может быть запрещена.
- События стрельбы по моделям банят и разбанивают.
- Предназначен для работы с моделями Laravel Eloquent.
- Имеет поддержку Laravel Nova.
- Использование контрактов для сохранения широких возможностей настройки.
- Использование черт для получения функциональности из коробки.
Пакет имеет хороший 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();
Пакет также предоставляет приятные удобства, такие как промежуточное программное обеспечение, события, области и автоматическое применение областей к модели.
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на GitHub.