Laravel Packages

Postgres Range Type Support for Laravel 7

Published
Postgres Range Type Support for Laravel 7 image

The PosgreSQL range types package by @belamov provides range type support to Eloquent for the Postgres database:

Schema::create('table', function (Blueprint $table) {
$table->id();
// ...
$table->dateRange('date_range');
$table->timestampRange('timestamp_range');
$table->floatRange('float_range');
// for int4range
$table->integerRange('integer_range');
// for int8range
$table->bigIntegerRange('integer_range');
 
// you can add any modifications
// $table->dateRange('date_range')->nullable();
// $table->dateRange('date_range')->default('[2010-01-01,2010-01-02)');
});

The main features of this package include:

  • Extended Laravel’s PostgresGrammar and PostgresConnection classes to provide a fluent API for range columns
  • Support for the following Postgres range types: daterange, tsrange, numrange, intrange, and timerange.
  • A number of query build macros for convenience (i.e., whereRangeContains($left, $right)
  • Model property casting

The model property casting provided by this package provides convenience for working with ranges on model instances. For example:

use Belamov\PostgresRange\Ranges\IntegerRange;
 
$range = new IntegerRange(10, 20, '[', ')');
 
$range->from(); // 10
$range->to(); // 20
(string) $range; // [10,20)
$range->forSql(); // '[10,20)'

You can learn more about this package, get full installation instructions, and view the source code on GitHub at belamov/postgres-range. The package has an excellent blog post to bring you up to speed on the powerful features available in Postgres’ range types: Ranges in Laravel 7 using PostgreSQL.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Volker Dusch on the PHP RCE Vulnerabilities and Disclosure image

Volker Dusch on the PHP RCE Vulnerabilities and Disclosure

Read article
Decide with Jev: Turn AI Answers into Decisions with PHP Rules image

Decide with Jev: Turn AI Answers into Decisions with PHP Rules

Read article
Skuul: Open-Source School Management Built on Laravel image

Skuul: Open-Source School Management Built on Laravel

Read article
Laravel Read Replicas: Prevent Stale Reads After a Write image

Laravel Read Replicas: Prevent Stale Reads After a Write

Read article
Screenshot: Capture Images and PDFs with PHP and Laravel image

Screenshot: Capture Images and PDFs with PHP and Laravel

Read article
Reset Sticky Database Connections Between Laravel Queue Jobs image

Reset Sticky Database Connections Between Laravel Queue Jobs

Read article