cline/variable-keys

Laravel Blueprint macros for variable primary key and morph types
20,105
php
Install
composer require cline/variable-keys
Latest Version:2.0.3
PHP:^8.5.0
License:MIT
Last Updated:Mar 18, 2026
Links: GitHub  ·  Packagist
Maintainer: faustbrian

GitHub Workflow Status Latest Version on Packagist Software License Total Downloads


variable-keys

Laravel Blueprint macros for variable primary key and morph types

Requirements

Requires PHP 8.4+

Installation

composer require cline/variable-keys

Usage

use Cline\VariableKeys\Enums\PrimaryKeyType;
use Cline\VariableKeys\Enums\MorphType;

$primaryKeyType = PrimaryKeyType::tryFrom(config('database.primary_key_type'))
    ?? PrimaryKeyType::ID;

Schema::create('users', function (Blueprint $table) use ($primaryKeyType) {
    // Clean macro instead of verbose match expression
    $table->variablePrimaryKey($primaryKeyType);

    $table->string('name');
    $table->timestamps();
});

Schema::create('posts', function (Blueprint $table) use ($primaryKeyType) {
    $table->variablePrimaryKey($primaryKeyType);

    // Foreign key that matches the primary key type
    $table->variableForeignKey('user_id', $primaryKeyType)
          ->constrained()
          ->cascadeOnDelete();

    $table->string('title');
    $table->timestamps();
});

Documentation

Change log

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security related issues, please use the GitHub security reporting form rather than the issue queue.

Credits

License

The MIT License. Please see License File for more information.

Related Packages

neonbug/meexo-gallery

Gallery package for Meexo CMS

127 1
zweer/images

Everything you need to manipulate images in PHP.

25 0
jlorente/laravel-application-end-queue

A Laravel queue connector to process jobs at the end of the application

2,440 1
chriscubos/jspack

Laraval collection of public assets packages for your development.

16 0
cipi/agent

Cipi Agent for Laravel — webhook deploy, health check, and server integration

3,149 5