farhanisrakyen/laravel-model-bender

Interactive Laravel model generator with fields, enums, casts, relationships, and migrations

Maintainers

Package info

github.com/FarhanIsrakYen/laravel-model-bender

pkg:composer/farhanisrakyen/laravel-model-bender

Statistics

Installs: 34

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.2 2026-03-25 21:53 UTC

This package is auto-updated.

Last update: 2026-03-25 21:55:11 UTC


README

An interactive Artisan command to generate and update Laravel models with fields, casts, relationships, indexes, and migrations — safely and incrementally.

This package is designed for real projects, not just scaffolding demos.

✨ Features

  • ✅ Interactive CLI wizard
  • ✅ Create models + migrations
  • ✅ Update existing models safely
  • ✅ Manage $fillable, $hidden, $appends, $casts
  • ✅ Relationship generation (incl. morphs)
  • ✅ Pivot table generation
  • ✅ Index creation with validation
  • ✅ Safe alter migrations (no breaking schema)
  • ✅ Warnings for duplicates & missing models

Installation

1. Install via Composer

Once the package is published to Packagist, you can install it in your Laravel project:

composer require farhanisrakyen/laravel-model-bender

2. Optional: Publish vendor assets (if applicable)

php artisan vendor:publish --tag=laravel-model-bender

3. Ensure app/Models exists

The package supports nested directories, so make sure your app/Models folder exists.

Usage

Generate a Model Interactively

Run the artisan command with the model name (supports nested paths):

php artisan make:model-interactive User

or, for nested paths

php artisan make:model-interactive Admin/User
  • This will generate:
    • app/Models/Admin/User.php
    • Migration(s) under database/migrations

🧭 Interactive Flow 1️⃣ Define Fields Once you run the make:model-interactive command, you’ll be prompted for: - Field name - Field type (string, integer, boolean, enum, etc.) - Nullable - Unique - $fillable, $hidden, $appends - $casts

  • You will be prompted to define fields:

    • Name, type, nullable, unique
    • Add to $fillable, $hidden, $appends
    • Cast type
    • Enum values if field type is enum
  • Then define relationships:

    • Method name
    • Related model (full class or relative)
    • Relationship type (hasOne, hasMany, belongsTo, belongsToMany, morphOne, morphMany, morphTo, morphToMany)
    • Optionally generate pivot migrations for many-to-many relationships
  • After previewing the summary, confirm to generate:

    • Eloquent model file
    • Migration file(s)
    • Pivot migrations (if any)

Example

php artisan make:model-interactive Blog/Post
  • Creates app/Models/Blog/Post.php
  • Generates database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php
  • Prompts interactively for fields, enums, casts, and relationships

Notes

  • Supports nested directories.
  • Pivot migrations are automatically created for belongsToMany or morphToMany relationships.
  • $fillable, $casts, $hidden, $appends, and $guarded are automatically managed.
  • Factories are not generated.

Contributing

If you find issues or want to add features, feel free to fork the repository and submit a pull request.

License

MIT