laravel-oracle-sequence maintained by dayatdev
Laravel Oracle Sequence
🔁 Library Laravel untuk menangani Oracle SEQUENCE seperti
NEXTVAL/CURRVAL, agar tidak error setelah migrasi atau saat insert data tanpa auto increment bawaan.
Package ini memungkinkan kamu:
- Membuat sequence otomatis jika belum ada di database Oracle.
- Mengambil nilai berikut (
NEXTVAL) dari sequence. - Integrasi langsung dengan Eloquent model via trait.
- Gunakan pada project Laravel biasa tanpa konfigurasi tambahan yang rumit.
🧩 Requirements
| Komponen | Versi Minimum |
|---|---|
| PHP | 8.1 |
| Laravel | 9.x, 10.x, 11.x |
| Database | Oracle (tested on 12c, 19c) |
| PDO Driver | pdo_oci atau yajra/laravel-oci8 |
⚙️ Installation
composer require dayatdev/laravel-oracle-sequence
Setup
//config/app.php
'providers' => [
DayatDev\OracleSequence\OracleSequenceServiceProvider::class,
],
'aliases' => [
'OracleSequence' => DayatDev\OracleSequence\Facades\OracleSequence::class,
],
Clear cache & autoload
php artisan config:clear
composer dump-autoload
Usage
- Mengambil next value dari sequence
use DayatDev\OracleSequence\Facades\OracleSequence;
$nextVal = OracleSequence::nextval('USER_SEQ');
echo $nextVal;
Jika sequence belum ada, package otomatis akan membuat:
CREATE SEQUENCE USER_SEQ START WITH 1 INCREMENT BY 1 NOCACHE;
2.Menggunakan pada Model Eloquent
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use DayatDev\OracleSequence\Traits\HasOracleSequence;
class Banner extends Model
{
use HasOracleSequence;
protected $table = 'banners';
protected $primaryKey = 'id';
public $incrementing = false; // wajib false jika bukan auto increment DB
// opsional: override nama sequence
protected string $sequenceName = 'BANNERS_SEQ';
}
3.Mengambil nilai sequence tanpa insert