cybercog / laravel-eloquent-flag
Laravel Eloquent 布尔值 & 时间戳标记属性行为。
Requires
- php: ^8.0
- illuminate/database: ^9.0|^10.0|^11.0
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.6|^10.5
This package is auto-updated.
Last update: 2024-09-09 18:49:00 UTC
README
介绍
Eloquent 布尔值 & 时间戳标记属性行为。只需几分钟即可增强 Eloquent 模型,使用常用状态标记如 Active
、Published
、Approved
等。
内容
特性
- 专为与 Laravel Eloquent 模型协同工作而设计。
- 每个模型可以有多个标记。
- 每个标记都为模型添加全局查询作用域。
- 2 个逻辑标记组:
Classic
、Inverse
。 - 2 种类型的标记:
Boolean
、Timestamp
。 - 标记字段自动转换为
bool
&DateTime
。 - 遵循 PHP 标准建议
- 带有单元测试。
可用标记列表
任何实体可以同时拥有多个标记。如果标记不能同时为同一实体工作,它们将列在 冲突
列中。
工作原理
Eloquent Flag 是向 Eloquent 模型添加标记属性的一种简单方法。所有标记都有自己的特质,该特质为所需实体添加全局作用域。
有两种类型的标记
Boolean
标记是常见的。存储在数据库中为BOOLEAN
或TINYINT(1)
值。Timestamp
标记在数据库中以可空的TIMESTAMP
列表示。当您需要知道动作何时执行时很有用。
所有标记都分为两个逻辑组
Classic
标记默认显示只有true
或timestamp
标记值的实体。Inverse
标记默认显示只有false
或null
标记值的实体。
可以通过使用针对每个标记唯一的特殊全局作用域方法检索省略的实体。
示例: 如果您的
Article
模型有PublishedAt
标记,则Article::get()
将返回所有已发布的记录。当您需要仅获取未发布的记录时,您可以调用Article::onlyUnpublished()->get()
,而Article::withUnpublished()->get()
将返回已发布和未发布的文章。
辅助特质将自动将标记属性转换为 DateTime
/ Carbon
实例或 bool
。
安装
通过 Composer 拉取此包。
composer require cybercog/laravel-eloquent-flag
使用
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
升级
请参阅 UPGRADING 了解详细的升级说明。
贡献
请参阅 CONTRIBUTING 了解详细信息。
测试
使用以下命令运行测试
vendor/bin/phpunit
安全
如果您发现任何与安全相关的问题,请通过电子邮件open@cybercog.su联系我们,而不是使用问题跟踪器。
贡献者
替代方案
请随时以拉取请求的形式添加更多替代方案。
许可
Laravel Eloquent Flag
软件包是Anton Komarev开源的软件,使用MIT许可证。Clock
图片使用Creative Commons 3.0许可,由Rudez Studio提供。
关于 CyberCog
CyberCog是一个爱好者社交团体。研究产品与软件开发中的最佳解决方案是我们的激情所在。