Laravel 7 支持 Postgres Range Type
由 @belamov 编写的 PosgreSQL 范围类型 软件包为 Postgres 数据库提供了范围类型支持:
Schema::create('table', function (Blueprint $table) {
$table->id();
// ...
$table->dateRange('date_range');
$table->timestampRange('timestamp_range');
$table->floatRange('float_range');
// 对于 int4range
$table->integerRange('integer_range');
// 对于 int8range
$table->bigIntegerRange('integer_range');
// 您可以添加任何修改
// $table->dateRange('date_range')->nullable();
// $table->dateRange('date_range')->default('[2010-01-01,2010-01-02)');
});
该软件包的主要功能包括:
- 扩展了 Laravel 的
PostgresGrammar
和PostgresConnection
类可为范围列提供流畅的API。 - 支持以下 Postgres 范围类型:
daterange
、tsrange
、numrange
、intrange
和timerange
。 - 许多方便使用的查询构建宏 (即
whereRangeContains($left,$right)
- 模型属性转换
此包提供的模型属性转换为使用模型实例上的范围提供了便利。 例如:
use Belamov\PostgresRange\Ranges\IntegerRange;
$range = new IntegerRange(10, 20, '[', ')');
$range->from(); // 10
$range->to(); // 20
(string) $range; // [10,20)
$range->forSql(); // '[10,20)'
您可以在 belamov/postgres-range 上了解有关此软件包的更多信息、完整的安装说明并在GitHub上查看源代码。 该软件包具有出色的博客文章,可让您快速了解 Postgres 范围类型中可用的强大功能:在Laravel 7 中使用PostgreSQL Ranges。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。