Projectslaravel-shortifyModels

Laravel Shortify

Package

URL shortening with visit tracking for Laravel.

Upgrade Guide

Models

ShortifyUrl

Maps an original_url to a unique code.

AttributeNotes
codeUnique, case-sensitive (collation configurable)
original_urlDestination URL
user_idOptional owner
visit_countIncremented when visits are tracked
expires_at / expiredExpiry state
deleted_atSoft deletes

Helpers:

use BradieTilley\Shortify\Models\ShortifyUrl;

ShortifyUrl::findByCode('ABC123');
ShortifyUrl::redirectTo('ABC123'); // redirect or throw
$url->url; // absolute short URL
$url->isExpired();
$url->expireIfExpired();
$url->visit();
$url->visits; // ShortifyVisit collection
$url->owner;  // authenticatable user, if set

Soft-deleted URLs are ignored by findByCode / redirects (treated as not found). The unique code constraint still includes soft-deleted rows — force-delete before reusing a code.

ShortifyVisit

One row per recorded visit:

AttributeNotes
shortify_url_idParent URL
user_idAuthenticated visitor, if any
ipRequest IP
user_agentUser-Agent header
created_atNo updated_at

Swapping models

'models' => [
    'user' => App\Models\User::class,
    'shortify_url' => App\Models\ShortUrl::class,
    'shortify_visit' => App\Models\ShortVisit::class,
],

Custom URL / visit models should extend the package base classes.